Organizing Docs/Java Docs
다형성(Polymorphism)
Mon Groy
2024. 5. 23. 20:00
Parent parent1 = new Parent(); | 가능 |
Child child1 = new Child(); | 가능 |
Parent parent2 = new Child(); | 가능 |
Child child2 = new Parent(); | 불가능 |
parent1 = (Parent) child2; | 업캐스팅 |
child1 = (Child) parent2; | 다운캐스팅 (조심해야 함) |
Parent instanceof Child | false |
Child instanceof Parent | true |
parent.Childmethod() | 불가 |
child.Parentmethod() | 가능 |
다형적 참조(Polymorphism)
하나의 객체가 다른 타입으로 사용되는 것
상속 받을 수록 구체적이 되므로 자식클래스는 추상적이었던 부모 클래스의 인스턴스가 될 수 없다
반대로 추상적이었던 부모는 구체적인 자식클래스의 인스턴스가 될 수 있다
Parent parent = new Parent parent.method(); |
Parent 의 method() 사용 |
Child child = new Child child.method(); |
Child 의 method() 사용 |
Parent poly= new Child poly.method(); |
Child 의 method() 사용 |
Parent poly = new Child poly.value |
Parent 의 value 값 나옴 |
@Overriding 은 메서드를 재정의 하는 것이다(변수 불포함)