[자바] 업캐스팅을 사용하는 이유

Hamburgerkin9·2023년 2월 24일
0

Java

목록 보기
1/1
post-thumbnail

업캐스팅이란?

  • 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 말한다.**


업캐스팅의 특징

  • 부모클래스 타입으로 업캐스팅 될 경우 자식 객체는 부모클래스가 가지고 있는 멤버만 사용할 수 있다.

  • 자식클래스가 부모클래스로 업캐스팅되는 경우 명시적인 형변환을 선언하지 않아도 자동으로 형변환이 된다.


업캐스팅을 하는 이유

  • 클래스들의 공통적인 부분을 부모클래스로 묶어, 간편화 시키자는데 목적이 있다.

업캐스팅을 사용한 경우

public class Main {
    public static void main(String[] args) {
        Main m = new Main();
        m.makeSounds(new Cat());
    }
    
    public void makeSounds(Pet pet){	//업캐스팅을 통해 다양한 동물의 소리를 낼 수 있음
        pet.sounds();
    }
}

class Pet { 
    public void sounds() {
    }
}

class Dog extends Pet {
    public void sounds() {
        System.out.println("멍멍");
    }
}

class Cat extends Pet {
    public void sounds() {
        System.out.println("냐옹");
    }
}

class Pig extends Pet {
    public void sounds() {
        System.out.println("꿀꿀");
    }
}
  • Pet pet에 업캐스팅을 통해 Pet의 자식 클래스인 Dog Cat Pig의 인스턴스를 효과적으로 관리할 수 있다.

업캐스팅을 사용하지 않은 경우

    public void makeSounds(Cat cat) {
        cat.sounds();
    }

    public void makeSounds(Dog dog) {
        dog.sounds();
    }

    public void makeSounds(Pig pig) {
        pig.sounds();

    }
  • 클래스 각자 관리를 해야하는 불편함이 생겨야 한다.
profile
개발자

0개의 댓글