Backend/java

예제를 통한 상속의 이해5

IT grow. 2018. 8. 8. 19:54
반응형
package day08;
public class fishTest {
public static void main(String[] args) {
Animal d = new Dog("진돗개","쫑쫑");//Is a 관계

System.out.println(d instanceof Dog); // Dog클래스의 인스턴스인지 확인 여부를 판별
if(d instanceof Dog) // 만약에 Dog클래스의 인스턴스가 d가 맞다면 .
{
((Dog)d).Print();
}
d.breath();
((Dog)d).Print();
((Fish)d).print(); // 이 부분은 컴파일이 못잡아 준다 . 현재 상태는 Animal 과 Dog가 있는데 ..
Animal f = new Fish("레몬씨"); // 파라미터 한개짜리가 넘어가기 떄문에 그거에 맞는 메서드가 실행될 것이다.
((Fish)f).print(); // Animal로써 인스턴스 f를 만들었으니까 Fish로 캐스팅해서 타입을 맟춰준것이다.
f.breath(); // 부모 한테 받은 것들이 다 적합할 수는 없다.
// 맨 위 상위클래스인 Animal을 잘 다루면 Dog와 Fish의 정보를 한 배열에서 관리할 수 있다.
}
}


반응형