IT/JAVA

자바 - 추상클래스,템플릿 메서드

트레비라임 2020. 11. 22. 01:30

추상클래스의 개념

사전적 의미로 추상(abstract)은 실체 간에 공통되는 특성을 추출한 것을 말한다. 예를 들어 새, 곤충, 물고기 등의 실체에서 공통되는 특성을 추출해보면 동물이라는 공통점이 있다.

클래스들의 공통적인 특성을 추출해서 선언한 클래스를  추상클래스라고 한다. 추상클래스와 실체 클래스는 상속의 관계를 가지고 있다. 

추상클래스는 new연산자를 사용해서 인스턴스를 생성시키지 못한다.

추상 클래스 선언

하위클래스에서 추상메서드 사용

 

추상클래스 사용하기

추상클래스는 주로 상속의 상위 클래스로 사용됨.

추상 메서드 : 하위 클래스가 구현해야하는 메서드.

구현된 메서드 : 하위클래스가 공통으로 사용하는 기능의 메서드 하위 클래스에 따라 재정의 할 수 있음.

 

템플릿메서드

템플릿: 틀리안 견본을 의미

템플릿  메서드 : 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의해 놓은 메서드  final로 선언하여 재정의 할 수 없게함

템플릿 메서드 패턴 : 디자인 패턴의 일종 프레임 워크에서 많이 사용되는 설계 패턴 추상클래스로 선언된 상의 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메서드 구현은 하위 클래스에 위임함 하위 클래스가 다른 구현을 했다고 해서 템플릿 메서드에 정의 시나리오 대로 수행됨.

 

추상메소드느 자식클래스에서 오버라이딩해서 재정의 해야한다. Car클래스에서는 사용불가

ManualCar가 Car를 상속받아서 추상메소드를 재정의 했다

run()메소드 하나로 모든 템플릿에 저장된 메소드가 동작한다.