• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

상위클래스를 이용하는 방식

21.01.16 16:13 작성 조회수 89

0

메인에서 객체를 생성할 때 상위클래스를 이용하는 것이 좋다고 하셨는데 , 그렇게 되면 하위클래스만의 메소드 이용할 때 편한 방법은 따로 없나요?

Animal d = new Dog();
d.eat();
((dog)d).night();  이런 식으로 상위클래스에 없는 메소드를 사용할 때는 매번 ((dog)d). 이렇게 접근해야 하는건가요?
복붙하면 된다고는 하지만, 번거로움도 있는거 같아서요..!

답변 1

답변을 작성해보세요.

0

네 그것은 접근방식의 차이 입니다.하위클래스의 동작방식을 모른다고 가정하면 아래처럼 객체를 생성해서 접근하면되겠죠. 그러면 하위클래스에만있는 메서드는 다운케스팅을 해서 접근을 해야됩니다.->((Cat)ani).night();

1.Animal ani=new Cat();

이런경우가 아니다면

2.Cat c=new Cat(); 이렇게 객체를 생성해서 접근하면 더 편하게 접근하긴 하겠죠.

그런데 구현하다보면 1번 처럼 접근해야되는 경우가 더 많다는 것을 알수있을겁니다.