JAVA
[Eclipse] 추상클래스, 인터페이스
kangjisoo
2021. 6. 23. 11:32
* 추상클래스(abstract class)
: 추상메소드(미완성 메소드)를 포함하고 있는 클래스
- 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다. (상속의 개념)
- 객체화 할 수 없음
* 추상메소드(abstract method)
: 선언부만 있고 구현부(몸통, body)가 없는 메소드
-abstract 키워드로 선언되고 중괄호가 없는 메소드
- 메소드 선언만 통일하고 실행 내용은 실체 클래스마다 달라야 하는 경우
- 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 한다
abstract class AbsEx1{
int a = 100;
final String str = "abstract test";
public String getStr(){
return str;
}
// 추상 메서드는 몸체(body)가 없다.
abstract public int getA();
}
* 인터페이스(interface)
- 일종의 추상클래스. 추상클래스(미완성 설계도)보다 추상화 정도가 높다.
- 실제 구현된 것이 전혀 없는 기본 설계도.(알맹이 없는 껍데기)
- 추상메소드와 상수만을 멤버로 가질 수 있다.
- 객체화를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다.
- 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다.
- 모든 멤버변수는 public static final이어야하며, 생략 가능하다.
- 모든 메소드는 publuc abstract이어야하며, 생략 가능하다.
- 인터페이스를 상속받은 클래스의 메소드는 반드시 재정의해야함 (오버라이딩)
public interface RemoteControl {
//상수
public int MAX_VOLUME = 10;
public int MIN_VOLUME = 0;
//추상 메소드
public void turnOn();
//메소드 선언부만 작성 (추상 메소드)
public void turnOff();
public void setVoulume(int volume);
}
- 인터페이스를 구현하는 것은 클래스를 상속받는 것과 같다. (‘extends’ 대신 ‘implements’를 사용한다.)
- 인터페이스를 구현받아 메소드를 재사용하여 사용한다. (클래스와 달리 다중구현,상속 허용)