[ 추상 클래스 ]
추상(abstract) 메서드는 선언만 있고 구현이 없는 메서드이다. 추상 메서드를 포함한 클래스는 추상 클래스라고 한다.
추상 메서드와 추상 클래스는 키워드 abstract 로 표시, 추상 클래스는 객체를 만들 수 없다. 따라서 서브 클래스를 만드는 용도로만 사용된다.
추상 클래스의 특징
- 하위클래스의 구현을 강제할 수 있다.
- 하위클래스 들에 대해서 같은 내용을 정의 (일관성 있는 접근 가능)
Q. 추상 클래스를 상속받으면 추상 메소드를 구현해야 하는가?
상속받는 클래스가 일반 클래스면 반드시 YES , 또 다른 추상클래스라면 NO
// abstract class
public abstract class Event {
public String title;
public Event(String title) {
this.title = title;
}
//abstract 메서드
public abstract boolean isRelevant(MyDate date);
}
isRelevant 라는 메서드는 각각의 클래스에서 다른 일을 한다.
public class OneDayEvent extends Event {
public MyDate date;
public boolean isRelevant(MyDate date) {
return this.date.compareTo(date) == 0;
}
}
public class DeadlinedEvent extends Event {
public MyDate deadline;
public boolean isRelevant(MyDate date) { // begin <= date <= end
return deadline.compareTo(date) >= 0;
}
}
public class DurationEvent extends Event {
public MyDate begin;
public MyDate end;
public boolean isRelevant(MyDate date) {
return begin.compareTo(date) <= 0 && end.compareTo(date) >= 0;
}
}
'자바프로그래밍' 카테고리의 다른 글
[JAVA] ArrayList 를 이용한 성적처리 프로그램 (0) | 2020.04.21 |
---|---|
[ JDK 1.7 ] Interface (인터페이스) (0) | 2020.04.12 |
상속 ( Inheritance ) (0) | 2020.04.07 |
메소드 오버로딩(Method Overloading) (0) | 2020.04.01 |
캡슐화(Encapsulation) (0) | 2020.04.01 |