• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

추상클래스 질문!

22.10.26 11:40 작성 조회수 154

0

(질문1) 추상클래스는 굳이 메서드에서 구현부를 구현시키지 않으려고 사용한다고 이해하는게 맞나요?

(질문2) 만약에 맞다면 public void eat() {System.out.println("?");} 에서 구현부를 없애는 게 아니라

public void eat() {}이런 식으로 하면 안 되는 건가요?

구현부를 구현하지 않으려고 굳이 사용한다는 게 이해가 잘 안 갑니다...ㅠㅠ

그 전처럼 하위 클래스에서 재정의만 해줘도 멀쩡히 구현되는데 왜 사용하는 지 이해가 안 갑니다.

답변 1

답변을 작성해보세요.

1

추상클래스는 단독으로 사용이 불가하고 반드시 하위클래스가 구현해서 사용이됩니다.

추상클래스를 하위클래스가 반드시 구현하게 만들려면 추상클래스가 가지고있는 메서드를 추상메서드로 만들어야되는데 추상메서드가 바로 public void eat(); 이렇게 구현부가 없는 메서드입니다. 상속에서 설명했듯이 하위클래스의 동작방식을 모를때 상위클래스인 추상클래스로 하위클래스를 구동 시키기위해서 추상클래스가 필요한 이유중 하나입니다.

아래처럼 Animal로 Dog를 구동시킬려는 이유입니다. Animal ani=new Dog();

위처럼 구동할려면 Animal에 있는 추상메서드를 Dog가 반드시 구현을 해야되구요.

이해가 되셨을까요?

아 감사합니다. 덕분에 이해가 잘 되고있습니다!!

본 질문과는 다른 질문이지만 예외처리에 대한 내용은 이 강의에서는 없는 거 같은데

따로 공부해야하는 건가요?