코딜기
[Java] 다형성의 타입 캐스팅 (Type Casting) 본문
반응형
다형성의 타입 캐스팅 (Type Casting)
- 다형성은 객체 관리를 쉽게 해 주지만, 주의할 점도 있습니다.
- 부모 타입으로는 자식 클래스의 모든 정보를 확인할 수 없다는 한계가 있습니다.
객체 생성과 배열 사용에서의 다형성
- 부모 타입 변수에 자식 객체를 생성했습니다.
public class Parent {
public int n1;
void method1() {}
void method2() {}
}
public class Child extends Parent {
public int n2;
@override
void method2() {}
void method3() {}
}
- 아래 코드를 보면 부모 클래스가 물려준 필드와 메서드는 정상적으로 호출되며, 자식이 오버라이드한 메서드도 사용할 수 있습니다.
- 그러나 자식 고유의 속성 및 기능은 사용할 수 없습니다.
- 이는 부모 타입만으로는 자식이 확장한 세부 정보를 알 수 없기 때문입니다.
public class Main {
Parent p = new Child();
p.n1 = 1;
//p.n2 = 2; (x)
p.method1();
p.method2();
//p.method3(); (x)
}
- 따라서 자식의 고유 속성과 기능을 사용하려면 부모 타입의 변수를 자식 타입으로 형 변환해야 합니다.
Child c = (Child) p;
c.n2 = 2;
c.method3();
- 형 변환 연산자를 사용하여 타입을 강제로 변환하면, 자식 객체의 모든 속성과 기능에 접근할 수 있습니다.
반응형
'Language > Java' 카테고리의 다른 글
[Java] 추상 클래스와 추상 메서드 (Abstract) (1) | 2024.09.21 |
---|---|
[Java] 다형성의 instanceof (0) | 2024.09.19 |
[Java] 다형성 (Polymorphism) (0) | 2024.09.19 |
[Java] super와 super() (0) | 2024.09.02 |
[Java] 오버라이딩 (Overriding) (0) | 2024.09.02 |
Comments