(부모클래스의 참조변수로 자식타입 인스턴스를 참조할 수 있음)
class Parent{...}
class Child extends Parent{...}
...
Parent pa = new Parent();
Child ch = new Child();
Parent pc = new Child();
같은 이름의 다른 함수를 호출하는 것 → polymorphism을 위함
❓ @override 어노테이션은 오버라이딩 조건은 검증해준다.
→ 컴파일러에게 재정의함을 알려줌으로써 실수를 방지한다.
❓ 메서드 시그니쳐: 메서드 명, 파라미터의 순서, 타입, 개수 (return과 exception은 제외)
객체 사이의 상속(inheritance)관계
superclass의 모든 특성을 다 가진다.
is a kind of
ex) Sonata is a Car
자신의 객체 내에 다른 객체의 instance를 포함
belongs to
ex) Sonata has a Engine
new를 통해 객체를 생성할 수 없으며 상속받거나 구현된 자식만이 객체를 생성할 수 있다.
interface키워드로 추상메서드와 상수만 포함하여 선언
→ 상속관계를 타고 올라갔을 때 다른 조상클래스를 상속하지만 같은 기능이 필요항 경우
abstract로 선언된 class
→ 상속관계를 타고 올라갔을 때 조상클래스를 상속하고 기능도 완전히 같은 경우
참고