강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이제 시작이야님의 프로필 이미지
이제 시작이야

작성한 질문수

Java TPC (생각하고, 표현하고, 코딩하고)

추상클래스 질문!

작성

·

267

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가 반드시 구현을 해야되구요.

이해가 되셨을까요?

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

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

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

 

이제 시작이야님의 프로필 이미지
이제 시작이야

작성한 질문수

질문하기