반응형

상속관계

상속(inheritance)

  • 하위 클래스는 상위 클래스의 특징인 필드와 메소드를 그대로 물려받을 수 있는 특성
  • 사람, 교직원, 학생, 교수, 행정직원, 장학생을 클래스로 표현
  • 이들 클래스 간의 계층 구조에서 상속이라는 특징을 파악
  • 하위인 교수, 행정직원은 상위 교직원의 특성을 모두 물려 받을 수 있음

 

상속관계예제 - 사람.java

 

상속관계예제 - 교직원.java

 

 

상속관계예제 - 사무직원.java

 

 

 

업 캐스팅

업 캐스팅

  • 하위객체는 상위 클래스 변수에 대입이 가능, 상위로의 자료형 변환
  • 업 캐스팅은 하위인 교직원은 상위인 사람이라는 개념이 성립

 

업 캐스팅의 제약

  • 업 캐스팅된 변수로는 하위 객체의 멤버를 참조할 수 없는 제약
  • 교직원 변수 '김사랑'은 접근 지정자만 허용한다면 모든 멤버에 접근 가능
  • 사람 변수 '김사랑'은 사람의 멤버만 접근 가능

 

업 캐스팅 예제 - 사무직원테스트.java

 

업 캐스팅 예제 실행 결과

 

 

 

다운 캐스팅

다운캐스팅

  • 상위 클래스 형을 하위 클래스 형으로 변환
  • 다운 캐스팅은 반드시 명시적인 형변환 연산자(하위 클래스)가 필요
  • 만일 형변환 연산자가 없으면 컴파일 시간에 오류 발생

 

클래스자료형 변수 = (클래스자료형)상위클래스자료형객체;

직원 직원1 = (직원) 김사랑;

 

컴파일 시간

  • 상속 관계만 성립하면 다운 캐스팅 가능

실행 시간

  • 실제 객체가 할당되지 않았다면 실행 시간에 오류 발생

 

 

다운 캐스팅 예제

 

다운 캐스팅 예제 실행 결과

 

 

객체 확인 연산자

instanceof 연산자

  • 피연산자1 instanceof 피연산자2
  • 피연산자1이 객체변수가 참조하는 객체가 실제 피연산자2 클래스 이름이면 true, 아니면 false를 반환
  • 상속관계가 없으면 문법 오류 발생

 

 

instanceof 예제를 위한 클래스 생성

 

instanceof 예제 (1)

 

 

instanceof 예제 (2)

 

 

instanceof 예제 (3)

 

 

instanceof 예제 실행결과

 

 

반응형

+ Recent posts