반응형
추상 클래스
- 클래스 선언시 abstract class로 정의
- 추상 메소드를 하나 이상 포함
- 추상 메소드는 선언만하고 구현하지 않은 메소드로 정의
- 추상 메소드를 포함하는 상위 클래스는 객체 생성 불가
- 하위 클래스에서 상속 받은 모든 추상 메소드를 구현하면 객체 생성 가능
- 추상 메소드를 모두 구현하지 않을 경우, 하위 클래스도 모두 추상 클래스
- 하위 클래스에 기본 틀을 제공
사용 예시
- 추상 클래스의 추상 메소드를 상속 받은 하위 클래스에서 구현하여 메소드 사용
package Abstract;
// 부모 추상 클래스
public abstract class AbstractParent{
String msg;
public abstract void print();
}
// 자식 클래스, 추상 메소드 구현
public class AbstractChild extends AbstractParent{
@Override
public void print() {
System.out.println(msg);
}
}
// 메인 클래스
public class AbstractMain {
public static void main(String[] args) {
AbstractParent p = new AbstractChild(); // 업캐스팅
p.msg = "Hello";
p.print(); // Hello
AbstractChild c = new AbstractChild();
c.msg = "World";
c.print(); // World
}
}
반응형