instanceof 와 상속관계에 대해서 알아보자.
instanceof
클래스를 생성.Object 클래스는 모든 객체의 최상위 객체이므로 모든 자료형의 최상위자료형이라 할 수 있습니다. 그리고, 자바에서는 배열도 하나의 객체이므로 배열의 상위클래스 역시 Object 클래스가 됩니다. 다시 말해서, 배열 객체에서 Object 클래스의 모든 변수와 메소드를 사용할 수 있습니다. 이 때, 주어진 객체가 어떤 클래스 또는 그 클래스 상속하는 하위클래스의 인스턴스인지를 검사하기 위해 ‘instanceof’라는 연산자를 사용합니다. 또한, ‘instanceof’라는 연산자를 사용하여 어떤 인터페이스를 구현하고 있는 객체 클래스인지 하위클래스인지를 검사할 수도 있습니다.
Father Class, Father Class 를 상속받은 Son Class
그리고 Uncle Class 를 정의하였다.
( 별로 특별한건 없다. 기본 클래스 정의)
메인 클래스 생성!
메인 클래스를 생성하고 Son Class의 객체인 dynast를 생성.
instanceof 연산자를 이용해 상속관계를 테스트해봅니다.
만약 dynast 가 Father 클래스를 상속받은 객체라면 if문이 실행 되겠죠?
실행결과!
제대로 나오는군요.
dynast객체 즉 Son Class는 Father Class 로 부터 상속을 받았으니까요.
자 그럼! 두번째 테스트!!
dynast가 Uncle 클래스로 부터 상속받은 객체라면 if문이 실행 되겠죠?
(그림 크기가 작으시면 그림을 누르시면 커집니다.)
실행결과!
조건이 성립되지 않는다고 나오는군요.
즉 Son Class는 Uncle Class로 부터 상속을 받지 않았다는 것이군요.
instanceof 는 이 처럼 상속관계도 쓰이고 객체가
특정 인터페이스를 구현했는지
안했는지도 알아낼수있습니다.
(테스트 삼아 직접 해보세요^^)
여러모로 쓸모가 있는 연산자입니다^^
유용하게 쓰시길 바랍니다 '_^


이올린에 북마크하기
이올린에 추천하기



