프레임워크/Spring
추상클래스와 인터페이스
안싱미
2016. 6. 3. 17:01
Abstract class
Abstract 클래스를 이해하기 위해서는 인터페이스를 알아야한다.
인터페이스란? 전체를 다 추상화 시켜놓고 전체를 다 구체화시키는 것.
이 것을 보고, 우리는 대략적으로 알 수 있다. 구체적으로는 알 수 없다. 즉, 추상화를 시켜 놓은 것이다. 그러면 여기에서 writeNewArticle 메소드를 보자.
위를 보면, 그 메소드를 구체적으로 구현해놓았다. 그러나 추상화 된 것끼리의 흐름이 없다. 이게 바로 인터페이스다. 그럼 이제 추상화를 보자.
추상 클래스? 순서를 정해놓고 어떤 일을 할 건지를 구체화 시키는 것.
낮은 추상화와 높은 추상화를 구분 짓는 기준은?
→ 순서가 있는지 없는지 여부.
순서가 없다면 인터페이스를 쓰고, 순서가 없다면 추상 클래스를 쓰는 것이다.
어떤 기능을 모아모아서 흐름을 만들어 놓음. 마치 소화가 되는 과정처럼. 그 과정 하나하나를 만들어주는 것을 추상클래스라고 부른다. 추상클래스는 우리가 필요한 것만 추상화시켜놓는다.
아래 예를 보자. 일단 추상 클래스의 trace 메소드를 보면 흐름이 있다. 먼저는 콘솔에 로그를 찍고, 그 후에는 DB에 trace 로거를 찍는 것이다.
이 추상 클래스는 구체적으로 메소드를 구현해놓지 않았다(추상메소드). extends하여 다른 클래스에서 구현한다. 아래와 같이!