본문 바로가기
Today I learned

재사용 가능한 디자인 패턴 기반 코딩기술 강의 정리 - Abstract superclass

by soheemon 2021. 8. 5.

Superclass = 상위클래스. 부모클래스

http://tutorials.jenkov.com/java/abstract-classes.html

 

Abstract Class는 바로 인스턴스화 될수 없다. 

Abstract Class는 서브클래스에서 구현해야하는 Abstartc Method와, 로직이 구현된 Method를 동시에 가진다.

(이런 점이 인터페이스와는 다르다!)

 

어떻게 쓸 수 있을까!

공통적으로 실행하는 로직을 묶을수 있다.

- 예를들어.. 소켓통신 API를 구현한다고 했을때, 소켓을 열고, 닫고하는 부분을 추상클래스의 메서드로 구현해놓고.

서브클래스에서 비즈니스 로직만 구현을 하면 API 가져다 쓰는 입장에서는 소켓통신하는 부분을 신경쓰지 않아도 된다.

 

public abstract class MyAbstractProcess {

    public void process() {
        stepBefore();
        action();
        stepAfter();
    }

    public void stepBefore() {
        //implementation directly in abstract superclass
    }

    public abstract void action(); // implemented by subclasses

    public void stepAfter() {
        //implementation directly in abstract superclass
    }
}

 

Interface + Abstract Class in jdk

 

댓글