학습 목표
- 인터페이스(Interface)와 추상클래스(Abstract class)란?
- 공통점과 차이점을 설명할 수 있는가?
인터페이스와 추상클래스란?
① 인터페이스(Interface)
[특징]
▷ class Class implements Interface 의 모양이다.
▷ 미완성된 설계도라고 보시면 됩니다.
▷ 인터페이스끼리간의 상속이 가능합니다. 단 implements를 써야됩니다.
▷ 모든 멤버변수는 public static final이어야 한다. 단 이를 생략할 수 있다.
▷ 모든 멤버함수는 public abstract여야 한다. 단 이를 생략할 수 있다. 단, static 메서드와 default 메서드는 제외한다.(Java 8 이후)
[목적]
▷ 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제합니다.
② 추상클래스(Abstract class)
[특징]
▷ abstract class Class 의 모양이다.
▷ 미완성된 클래스이다. (미완성된 메서드를 포함하고 있습니다. 반대로 완성된 메서드가 있을 수 있습니다.)
[목적]
▷ 기존의 클래스에서 공통된 부분을 추상화하여 상속하는 클래스에게 구현을 강제화한다.
▷ 메서드의 동작을 구현하는 자식클래스로 책임을 위임한다.
▷ 공유의 목적입니다.
인터페이스와 추상클래스 공통점
① 공통점
▷ 인터페이스와 추상클래스는 선언만 있고 구현 내용이 없는 클래스이다.
▷ 새로운 인스턴스(객체)를 생성할 수 없다.
▷ 자식클래스가 무언가 반드시 구현하도록 위임해야할 때 사용된다.
인터페이스와 추상클래스 차이점
종류 |
추상클래스 |
인터페이스 |
관계 |
is-a (상속) |
has-a (포함) - 다형성(Polymorphism) |
다중상속 |
불가능 |
가능 |
인터페이스와 추상클래스의 특징을 바탕으로 공통점과 차이점에 대하여 설명하면 될 것 같습니다.
'CS > 개발지식' 카테고리의 다른 글
[Mac] IntelliJ 단축키 (0) | 2018.07.07 |
---|---|
[JAVA] StringBuffer, StringBuilder, String (0) | 2018.06.07 |
[HTML] HTML5 과 HTML (2) | 2018.05.07 |