슈퍼 클래스(부모 클래스) : 특성을 물려주는 클래스
서브 클래스(자식 클래스) : 특성을 물려받는 클래스
서브 클래스는 슈퍼 클래스를 물려받으면서 자신만의 특성을 붙일 수 있기 떄문에 갈수록 구체적으로 변화한다.
extends
키워드를 통해 상속
Java는 다중 상속을 지원하지 않는다
java.lang.Object는 모든 클래스의 조상 클래스
서브 클래스 객체가 슈퍼 클래스 타입으로 변환되는 것
superC s = new subC();
이때 객체 s는 superC의 멤버만 사용 가능하다.
명시적으로 타입을 지정해 업캐스팅을 되돌리는 것
객체의 실제 클래스 타입을 확인하기 위한 이항연산자
객체 instanceof 클래스타입
으로 사용하며 결과로 boolean 타입 값을 내놓는다.
if(kim instanceof Person)
슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스에서 재작성하는 것
//Line 클래스는 superC 클래스를 상속받는 서브 클래스
superC s = new superC();
s.draw() // superC 클래스의 draw 실행
Line a = new Line();
a.draw(); // Line 클래스의 draw 실행
superC l = new Line();
l.draw(); // Line 클래스의 draw() 실행
super.멤버이름
: 슈퍼 클래스의 레퍼런스에 접근할 수 있다.
this : 현재 객체의 주소
this() : 동일 클래스 내 다른 생성자 호출
super : 현재 객체 내 슈퍼클래스 영역 주소
super() : 서브 클래스 생성자에서 슈퍼 클래스의 생성자 선택 호출
같은 클래스나 상속 관계에서 동일 이름 메소드 중복 작성