JAVA/포스팅

자바 업캐스팅(Upcasting)

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

자바에서 업캐스팅(Upcasting)은 하위 클래스의 객체를 상위 클래스 타입으로 변환하는 것을 말합니다. 업캐스팅은 자동으로 이루어지며, 컴파일러가 자동으로 처리합니다. 이는 객체 지향 프로그래밍의 다형성을 구현하는 중요한 개념 중 하나입니다.

아래는 업캐스팅의 예제입니다.

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 클래스의 메서드 호출
        myAnimal.sound(); // 실행 시 Dog 클래스의 오버라이딩된 메서드가 호출됨

        // 업캐스팅된 객체로 Dog 클래스의 고유 메서드에는 접근할 수 없음
        // myAnimal.bark(); // 에러! Animal 타입으로 선언된 변수는 Dog 클래스의 고유 메서드에 접근할 수 없음
    }
}

위의 예제에서 new Dog()를 통해 생성된 Dog 클래스의 객체를 Animal 타입의 참조 변수 myAnimal로 참조하고 있습니다. 이것이 업캐스팅입니다. 이후에 myAnimal을 통해 Animal 클래스의 메서드에 접근할 수 있습니다.

업캐스팅은 다형성을 구현하는 중요한 개념으로, 하나의 메서드 호출이 서로 다른 클래스의 메서드를 실행할 수 있게 합니다. 이는 코드의 유연성을 높여주며, 객체 지향 프로그래밍의 핵심 원칙 중 하나인 "프로그래밍을 추상화를 통해 이해하기 쉽게 만들자"를 반영하고 있습니다.

 

With ChatGPT

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

자바 매개변수의 다형성  (0) 2023.11.12
자바 참조변수와 인스턴스의 연결  (0) 2023.11.12
자바 다운캐스팅(Downcasting)  (0) 2023.11.12
자바 참조변수의 형변환  (0) 2023.11.12
자바 strictfp 제어자  (0) 2023.11.12