코딜기

[Java] 다형성의 타입 캐스팅 (Type Casting) 본문

Language/Java

[Java] 다형성의 타입 캐스팅 (Type Casting)

코딜기 2024. 9. 19. 19:13
반응형

다형성의 타입 캐스팅 (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