[Java] 추상 클래스, 템플릿 메서드, final

2020. 6. 24. 02:51Language/Java

1. 추상 클래스

구현 코드가 없이 선언부만 있는 메서드이다. abstract 예약어 사용하며, 추상 클래스는 new(인스턴스화) 할 수 없다. 주로 상위 클래스에서 사용하며, 하위 클래스에서 추상 메서드가 구현된다.

Computer, Desktop


상위 클래스를 상속받는 하위 클래스에서 추상 메서드를 모두 구현하지 않거나 특정 메서드만을 구현하는 경우

 

 

 

2. 템플릿 메서드

추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의한 메서드이다. final로 선언하여 재정의 할 수 없게 하며, 디자인 패턴의 일종으로 프레임 워크에서 많이 사용되는 설계 패턴이다. 추상 클래스로 선언된 상의 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메서드 구현은 하위 클래스에 위임한다.

Car, AICar, ManualCar, CarTest

 

 

 

3. 템플릿 메서드 활용

구조 도식화
PlayerLevel, BeginnerLevel, AdvancedLevel, SuperLevel, Player, PlayerTest

 

 

 

4. final

final 변수는 값이 변경될 수 없는 상수(PI = 3.14)이다. final 메서드는 하위 클래스에서 재정의 할 수 없다. final 클래스는 더 이상 상속되지 않는다(String 클래스). 프로젝트 구현 시 여러 파일에서 공유해야 하는 상수 값은 하나의 파일에 선언하여 사용한다.

Define, DefineTest

※ static으로 선언된 변수의 경우 인스턴스 생성없이 호출이 가능하다.


[참고] github.com/ozofweird/Java_Practice

728x90

'Language > Java' 카테고리의 다른 글

[Java] Object 클래스  (0) 2020.06.29
[Java] 인터페이스  (0) 2020.06.24
[Java] 다형성, 명시적 형 변환 (다운캐스팅)  (0) 2020.06.23
[Java] 메서드 오버라이딩, 가상 메서드  (0) 2020.06.23