abstract
키워드 사용인스턴스(객체)를 생성할 수 없음
abstract class Player { // 추상클래스
abstract void play(int pos); // 추상메서드 : {}블록이 없는 메서드
abstract void stop(); // 추상메서드
}
Player ap = new Player(); // 에러; 추상 클래스는 인스턴스 생성 불가
따라서, 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능 ⇒ ‘구현’
abstract class Player { // 추상클래스
abstract void play(int pos); // 추상메서드 : {}블록이 없는 메서드
abstract void stop(); // 추상메서드
}
class AudioPlayer extends Player { // 추상클래스인 Player를 상속받음
void play(int pos) { // 추상클래스의 모든 메서드를 오버라이드해야함
/* 내용 생략 */
}
void stop() {
/* 내용 생략 */
}
}
AudioPlayer ap = new AudioPlayer(); // OK
미완성 메서드
{...}
가 없는 메서드abstract
키워드 사용abstract 반환타입 메서드이름();
자손마다 다른 메서드의 구현이 필요한 경우 사용
추상 클래스를 상속받아 클래스를 선언하는 경우, 정의된 모든 추상 메서드를 재정의해줘야 함.
abstract class Player { // 추상클래스
abstract void play(int pos); // 추상메서드 : {}블록이 없는 메서드
abstract void stop(); // 추상메서드
}
class AudioPlayer extends Player { // 추상클래스인 Player를 상속받음
void play(int pos) { // 추상클래스의 메서드 일부만 구현하는 경우
/* 내용 생략 */
}
abstract void stop(); // 구현하지 않은 나머지 추상메서드는
// abstract키워드와 함께 재정의
}