Programming/Java

추상클래스(abstract class)

helloworld: 2021. 8. 23. 11:17

추상 개념

  • 추상화 : 공통되는 속성을 추출해 조상클래스를 만든다

  ※ 구체화 : 조상 클래스를 사용해 자손 클래스를 만든다.(상속)

  • abstract 키워드를 붙인다.

 

추상클래스

  • 미완성 클래스 -> new 명령문으로 인스턴스 생성 불가
  • 자손클래스에 의해서만 완성될 수 있다.
  • 자체로는 클래스로서의 역할을 온전히 할 수 없으나 새로운 클래스들을 작성 시 틀이 되는 조상클래스로서 중요한 의미를 가짐
  • 추상메서드를 한 개 이상 가진 클래스
  • 클래스 선언부에 abstract 반드시 명시

 

추상메서드 (abstract method)

  • 미완성 메서드
  • 메서드 선언부만 있고 구현부(본문)가 없다({ } 블록 자체가 없음)
  • 설계만 해놓고 실제 수행될 내용은 자손클래스에서 구현하도록 비워둔다.
  • 메서드 선언부에 abstract 명시

추상클래스를 상속받은 자식 클래스는

1. 추상메서드 오버라이딩 또는

2. 본인도 추상클래스가 되는 두 가지 선택지 중 택일해야 한다.


 

질문) 구현부 내용 없이 { }만 두는 것과 추상메서드로 만드는 것의 차이는?

구현부가 빈 메서드는 자손클래스에서 오버라이딩을 안 할 수도 있다. 그러나 추상메서드로 만들면 자손클래스에서 반드시 오버라이딩하여 구현해야 한다. 반드시 필요한 메서드를 강제하기 위해 추상메서드로 설계한다.