추상 클래스, 추상 메소드란?
추상 클래스 : 클래스가 전체적인 구성을 다 가지지 못한 채 설계만 되어 있는 클래스이다.
미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스를 생성할 수 없다.
추상클래스는 상속(Exctends)을 통해서 자식 클래스에 의해 완성이 된다. 그래서 추상클래스로는 제 기능을 못하지만, 새로운 기능을 정의하는데 있어서 바탕(틀)이 될 수 있다.
- 추상 메소드가 하나 이상 포함되면 반드시 추상클래스로 선언이 되어야한다.
- 추상클래스에서 추상 메소드가 아닌 일반 메소드를 포함 시킬 수 있다.
- 추상클래스를 상속하는 자식 클래스에서 부모가 가진 메소드를 모두 오버라이딩 해야한다.
- 추상 메소드는 몸체가 없고, 선언부만 존재한다.
인터페이스란?
인터페이스는 추상클래스처럼 추상 메소드를 갖지만 추상 클래스보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메소드 또는 멤버 변수를 구성원으로 가질 수 없다.
오직 추상 메소드와 상수만을 멤버로 가질 수 있으므로 그외의 다른 어떠한 요소도 허용하지 않는다. 추상클래스를 부분적으로 미완성된 설계도라고 했다면, 인터페이스 클래스는 아무것도 없고 밑그림만 그려져 있는 상태이다.
- 모든 멤버 변수는 public static final 이어야하며, 이를 생략할 수 있다.
- 모든 메소드는 public abstract이어야 하며, 이를 생략할 수 있다.
- 인터페이스는 인터페이스로부터만 상속(Extends)받을 수 있다. 클래스와 달리 다중 상속이 가능하다.
- ex ) interface Fingtable extends Movable, Attackable{}
- 여기서 Moveable과 Attackable은 모두 interface 클래스이다.
출처 : https://aileen93.tistory.com/107
'Programming > Java' 카테고리의 다른 글
[JAVA] Char 형 예제 (0) | 2020.03.10 |
---|---|
[JAVA] int, string null 체크 (0) | 2019.04.27 |
[Java] 데이터 형 변환 (String ↔ int) (0) | 2019.04.18 |