객체의 모형을 확인하는 방법
Instanceof
클래스 타입 확인용
변수 instanceof 클래스;
boolean형으로 리턴
거의 안씀
package day08.poly.instanceof_;
public class MainClass {
public static void main(String[] args) {
//instanceof = 객체의 모형을 확인
Person s = new Student("홍길동", 10, "1234");
Person t = new Teacher("이순신", 20, "프로그램");
casting(t);
}
public static void casting(Person p) {
if(p instanceof Student) { //p가 student라면 true, 아니면 false
Student s = (Student)p;
System.out.println( s.info() );
}else if(p instanceof Teacher) {
Teacher t = (Teacher)p;
System.out.println( t.info() );
}
}
}
package day08.poly.instanceof_;
public class Person {
String name;
int age;
Person(String name){
this(name,1);
}
Person(String name, int age){
super();
this.name = name.toUpperCase();
this.age = age;
}
String info() {
return "이름 : " + name + ", 나이 : " + age;
}
}
package day08.poly.instanceof_;
public class Teacher extends Person {
String subject;
Teacher(String name, int age, String subject){
super(name,age);
this.name = name;
this.age = age;
this.subject = subject;
}
String info() {
return super.info() + ", 과목 : " + subject;
}
}
package day08.poly.instanceof_;
public class Student extends Person {
String studentId;
Student(String name, int age, String studentId){
super(name,age);
// this.name = name;
// this.age = age;
this.studentId = studentId;
}
String info() {
return super.info() + ", 학번 : " + studentId;
}
}
package day08.poly.instanceof_;
public class Employee extends Person {
String department;
Employee(String name, int age, String department){
super(name,age);
// super();
// this.name = name;
// this.age = age;
this.department = department;
}
String info() {
//super.메서드 () = 오버라이딩된 메서드에서 부모님의 원형 메서드가 필요할때 사용
return super.info() + ", 부서 : " + department ;
}
}
'JAVA > 코드' 카테고리의 다른 글
2022_10_13 연습 03 day08.static_.method (0) | 2022.10.13 |
---|---|
2022_10_13 연습 02 day08.static_.var (0) | 2022.10.13 |
2022_10_12 연습 05 Quiz12 다향성을 이용한 문제 활용 (0) | 2022.10.12 |
2022_10_12 연습 04 다형성 배열 & 이종모음 (0) | 2022.10.12 |
2022_10_12 연습 03 다형성 연습 (클래스캐스팅) (0) | 2022.10.12 |
댓글