B클래스가 A클래스를 상속 받았을때 A a = new B() 이렇게 쓰는 경우도 있던데
어차피 저렇게 쓰면 A클래스에 있는 것들만 사용가능하고 B에 있는건 못쓰잖아요?
A클래스 사용할거면 A a = new A() 이렇게 쓰고
B클래스랑 상속된 A꺼 쓰려면 B b = new B() 이렇게 쓰면 될걸
A a = new B() 왜 이런식으로 사용하는지 아시는분 계신가요?
감사합니다 ^_^
B클래스가 A클래스를 상속 받았을때 A a = new B() 이렇게 쓰는 경우도 있던데
어차피 저렇게 쓰면 A클래스에 있는 것들만 사용가능하고 B에 있는건 못쓰잖아요?
A클래스 사용할거면 A a = new A() 이렇게 쓰고
B클래스랑 상속된 A꺼 쓰려면 B b = new B() 이렇게 쓰면 될걸
A a = new B() 왜 이런식으로 사용하는지 아시는분 계신가요?
감사합니다 ^_^
저렇게 하는 경우가 있다고?
아 많이있구나
만약 샷건 , 권총이 있고 총을 상속한다면 총으로 생성한다음 샷건이든 권총이든 Shot()을 쓰기위해 쓰긴함
B에서 A의 어느 메소드를 오버라이딩 했다면, 저렇게 써서 A의 메소드를 호출하면 오버라이딩된 B의 메소드가 호출되서 다형성이 구현된데. 그런데 최적의 방법이 아니니까 다형성은 왠만하면 인터페이스로 구현하래.
b객체로 쓰면 편한데 굳이 제약있는 a객체를 쓰는 이유가 궁금한거임? - dc App