예제로 공부하는 Java 100 문제풀이 Part.4
부모 클래스 Person이 있고, 이를 상속받은 자식 클래스 Student가 있다.
정리하면, 하위 클래스의 인스턴스(객체)는 보다 위인 상위 클래스의 인스턴스(객체)로도 사용될 수 있다.
하지만 그 반대는 안 된다.
따라서 상위(부모) 클래스의 인스턴스(객체)는 하위(자식) 클래스의 인스턴스(객체)로 사용될 수 없다.
class Person{}
class Student extends Person{}
public class Java100Ex17{
public static void main(String[] args) {
// [1]: 객체 생성
Student s1 = new Student(); // 지극히 정상 --> 에러날 이유가 하나도 없다.
// [2]: 객체 생성 --> 타입은 부모 타입으로 생성
Person s2 = new Student(); // 이것도 정상 --> 하위(자식) 클래스로 객체를 만들면서 타입은 상위(부모) 타입을 쓰는 것이 가능 --> 다형성
// [3]: 객체 생성
Person p1 = new Person(); // 지극히 정상
// [4]: 객체 생성 --> 상위(부모) 클래스로 객체를 생성하면서 타입은 하위(자식) 타입을 쓰는 경우 --> 에러
// Student p2 = new Person();
}
}
'Backend > Java' 카테고리의 다른 글
[인프런] 추상 클래스, 상속, class (1) | 2022.03.14 |
---|---|
[인프런] 다형성, 클래스, 호출 (0) | 2022.03.13 |
[인프런] 다형성, polymorphism, 개념, 학습 (0) | 2022.03.10 |
[인프런] 인터페이스, 문법, 개념 (0) | 2022.03.06 |
[인프런] 인터페이스, interface, 개념 (0) | 2022.03.06 |