09) 추상 클래스
추상 메서드란?
함수 몸체가 없이 선언만 하는 메서드
abstract int add(int x, int y); //abstract 예약어를 사용
public abstact class Computer {
public abstract void display(); //추상메서드
public abstract void typing(); //추상메서드
public void turnOn(){
System.out.println("전원을 켭니다.");
}
public void turnOff(){
System.out.println("전원을 끕니다.");
}
}
위 예제는 Computer를 상속받는 클래스 중 turnOn과 turnOff구현 코드는 공통이다. 하지만 display와 typing은 하위 클래스에 따라 구현이 달라질 수 있다. 그래서 Computer에서는 구현하지 않고, 이 두 메서드 구현에 대한 책임을 상속받는 클래스에 위임한다.
이때 public class DeskTop extends Computer{}은 추상클래스로 만들거나, 구현되지 않은 추상메서드인 display와 typing 메서드를 모두 구현해야 한다.
추상클래스를 만드는 이유
추상 클래스는 인스턴스로 생성할 수 없다.
추상 클래스는 상속을 하기 위해 만든 클래스입니다. 하위 클래스에서도 사용할 메서드를 구현하고, 하위 클래스에서 내용을 각각 다르게 구현해야 한다면, 구현 내용을 추상 메서드로 남겨둡니다.
템플릿 메서드
실행 순서, 즉 시나리오를 정의한 메서드이므로 바뀔 수 없다. 그래서 메서드 앞에 예약어 final을 사용해서 선언!
상속받은 하위 클래스가 메서드를 재정의할 수 없다.
final 예약어
변수에서는 상수를 의미, 메서드에서는 하위 클래스에서 재정의할 수 없음을 의미, 클래스에서는 상속할 수 없음을 의미.
'개발 > Java' 카테고리의 다른 글
Java] Do it 자바 프로그래밍 입문 요약 (셋째마당 - 11) (0) | 2019.06.18 |
---|---|
Java] Do it 자바 프로그래밍 입문 요약 (둘째마당 - 10) (0) | 2019.06.18 |
Java] Do it 자바 프로그래밍 입문 요약 (둘째마당 - 08) (0) | 2019.06.16 |
Java] Do it 자바 프로그래밍 입문 요약 (둘째마당 - 07) (0) | 2019.06.14 |
Java] Do it 자바 프로그래밍 입문 요약 (둘째마당 - 06) (0) | 2019.06.14 |