JAVA/포스팅

자바 다운캐스팅(Downcasting)

짜집퍼박사(짜박) 2023. 11. 12. 20:08

다운캐스팅(Downcasting)은 상위 클래스 타입으로 형변환된 객체를 다시 하위 클래스 타입으로 형변환하는 것을 말합니다. 다운캐스팅은 업캐스팅과는 다르게 명시적으로 형변환을 해주어야 합니다.

다운캐스팅은 주로 업캐스팅된 객체를 다시 원래의 하위 클래스로 변환하여 하위 클래스의 특정 메서드나 속성에 접근하기 위해 사용됩니다. 그러나 주의해야 할 점은 업캐스팅된 객체가 정말로 해당 하위 클래스의 객체인지를 확인한 후에 다운캐스팅을 수행해야 합니다. 이를 위해 instanceof 연산자를 사용할 수 있습니다.

다음은 다운캐스팅의 예제입니다.

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        // 업캐스팅: Dog 클래스의 객체를 Animal 타입으로 변환
        Animal myAnimal = new Dog();

        // 다운캐스팅: Animal 타입을 다시 Dog 타입으로 변환
        if (myAnimal instanceof Dog) {
            Dog myDog = (Dog) myAnimal;
            myDog.bark(); // Dog 클래스의 고유 메서드에 접근
        } else {
            System.out.println("Not a Dog object");
        }
    }
}

위의 예제에서 myAnimal이 실제로 Dog 클래스의 객체인지 확인한 후에 다운캐스팅을 수행하고 있습니다. 이러한 안전한 다운캐스팅은 런타임 에러를 방지하고 코드의 안정성을 유지하는 데 도움이 됩니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 참조변수와 인스턴스의 연결  (0) 2023.11.12
자바 업캐스팅(Upcasting)  (0) 2023.11.12
자바 참조변수의 형변환  (0) 2023.11.12
자바 strictfp 제어자  (0) 2023.11.12
자바 native 제어자  (0) 2023.11.12