상위(부모)클래스 A class
↑
하위(자식)클래스 B class
// A가 B에게 상속한다 = B가 A를 상속받는다
// 화살표 방향에 주의
class B extends A {}
extends는 확대, 확장한다는 뜻으로 자식 B 클래스가 A 클래스를 확장시킨다 생각하면 됨
상위클래스 : 일반적인 개념
하위클래스 : 구체적인 개념
: 하위클래스에서 상위클래스로 접근할 때 사용
메서드에서
super.
를 사용 ( this. 처럼 )super.메서드
로 부모의 메서드 호출 가능: 부모 클래스의 생성자를 호출
ex)
public A class { // 부모클래스 A
int a;
int b;
public A () { // 매개변수가 없는 생성자
super();
}
public A (int a, int b) { // 매개변수가 있는 생성자
super();
this a = a;
this b = b;
}
}
public B class extends A { // 자식클래스 B
String c;
// 매개변수가 있는 부모 생성자 호출
public B (int a, int b, string c) {
super(int a, int b);
this.c = c;
}
}
다운캐스팅
: 상위 클래스로 형 변환 되었던 하위 클래스를 다시 원래 자료형으로 형변환
instanceof
: 모든 인간은 동물이지만 모든 동물이 인간은 아니다.
따라서 다운 캐스팅 전, 상위 클래스로 형변환된 인스턴스의 원래 자료형을 확인해야 하는데 이를 확인하는 예약어
if(A instanceof B) { // A 인스턴스 자료형이 B형이라면
B b = (B)A; // 인스턴스 A를 B로 다운캐스팅
}