1. 추상클래스
- 스스로는 인스턴스를 만들 수 없음 (동물을 '포유류' 라고 불리는 동물은 없다.)
- 자식클래스로 파생되기 위한 클래스
- 개/고양이/말 등의 클래스로서 인스턴스 생성
- 다형성, 추상화, 재사용 때문에 사용
2. 예제
- abstract 를 붙여서 class를 선언해준다.
- abstract class YalcoGroup으로는 인스턴스를 만들지 못한다.
- field는 protected 로 되어있어, 자식클래스가 물려받아 사용해야 하기 때문이다.
- 추상클래스가 가지고 있는 abstract 메소드는 구현 되어있지 않다. 접근제어자가 의미가 없다. (스스로는 선언만 한다. 물려받을 자식들이 구현한다. 구현하지 않으면 안된다.)
- 클래스 메소드는 추상메소드로 생성이 불가하다. (static 이 붙은 거 불가능하다.)
3. 조금 더 실전적인 예제(UI)
- FormElement.java 를 추상클래스로 만든다. 이는 다양한 폼 요소에 대한 추상클래스이다.
- Button 클래스에서 extends FormElement 해준다.
- super(space) 로 추상클래스의 생성자를 상속해온다.
- @Override를 통해 func()를 반드시 선언해주어야 한다.
- DropDown과 Switch 도 똑같이 구현해준다.
- Main.java
- Main.java를 실행시키면
- 각 인스턴스의 func() 가 알아서 실행된다.
'Backend - Java Spring > JAVA_강의' 카테고리의 다른 글
[JAVA얄코] Singleton (0) | 2023.11.27 |
---|---|
[JAVA얄코] Interface (1) | 2023.11.24 |
[JAVA얄코] 다형성 (1) | 2023.11.22 |
[JAVA얄코] 상속 (0) | 2023.11.10 |
[JAVA얄코] 접근 제어자 (0) | 2023.11.10 |
댓글