Chapter 07 상속
모든 객체는 생성자가 호출되어야 객체를 생성할 수 있다.
자식 객체 생성 시 부모 객체가 먼저 생성되고 자식 객체가 생성된다.
클래스는 기본 생성자가 자동으로 추가되지만 매개변수 생성자가 존재한다면 자동으로 생성되지 않는다.
같은 패키지 또는 자식 객체만 사용 가능하다.
public void method2 { // class D extends A
A a = new A(); // 에러
a.field = "values"; // 에러
a.method(); // 에러
}
사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질이다.
Animal animal = new Person(); // 업캐스팅
animal.breath(); // 동적바인딩
배열을 활용한 예시는 다음과 같다.
Animal[] animals = new Animal[3];
animals[0] = new Dog();
animals[1] = new Cat();
animals[2] = new Bird();
for (Animal animal : animals) {
animal.makeSound();
}
공통적인 필드나 메서드를 추출해서 선언한 미완성 설계도이다.
class abstract class Animal {
abstract void sound();
}