*JAVA*

[java] 추상클래스(abstract)

깐부로부터 2021. 10. 29. 20:34

- 미완성 설계도. 미완성 메소드란 추상메소드(즉, {몸통}이 없는 미완성 메소드)를 갖고 있는 클래스.

- abstract 라는 예약어를 사용해서 정의해야함

- 다른 클래스 작성에 도움을 주기 위한것.

- 인스턴스는 생성 불가

   => 미완성 설계도 이므로 제품생성불가이다!

-'상속을 통해 메소드를 완성해야 객체 생성이 가능하다. 부모클래스 구실 가능

  => 상속받는 클래스가 추상 메소드의 {코드블럭}을 구현해주면 그때서야 객체 생성이 가능하다.

- 추상화된 코드는 구체화된 코드보다 유연. 변경에 유리

   (불명확하고 애매,,, 말바꾸기 쉽,,,)

 

- 언제쓰냐? 개발자의 역량

  1. 개념적으로 개발자가 판단했을 때 해당 클래스가 아직 구체적으로 덜 구현된 상태인것 같다.
  2. 기술적으로 개발자가 판단했을 때 이 클래스는 객체 생성이 불가능해야한다 라고 할 때 가능

장점

  1. 관리가 용이(변경)
  2. 설계도를 쉽게 작성
  3. 중복제거

위에 rule() 메소드는 {구현부} 가 존재하지 않는다.
abstract라는 예약어를 써서 정의해야한다.  
미완성 메소드가 하나라도 포함되는 순간 해당 클래스 또는 미완성클래스(추상클래스가)가 된다.

해당 클래스의 앞에도 abstract라는 예약어를 써야한다.

 

 

 

추상클래스를 상속받은 하위클래스는 extends 키워드를 통해 rul()메소드를 구현한다.

만약 해당 클래스에서도 구현을 원치 않는다면 상속을 통해 다음 하위클래스에서 구현을 해줘도 된다.

'*JAVA*' 카테고리의 다른 글

[java] 예외(Exception)  (0) 2021.10.30
[java] 인터페이스(Interface)  (0) 2021.10.29
[java] instanceof  (0) 2021.10.29
[java] 다형성  (0) 2021.10.27
[java] 오버라이딩(overriding)  (0) 2021.10.27