public abstract String getName();
public abstract void setName(String s);
public abstract String getName(){ return name; } // 컴파일 오류
추상 클래스가 되는 경우는 다음 2가지로서, 모두 abstract 키워드로 선언해야 한다.
1. 추상 메소드를 포함하는 클래스 → 추상 메소드가 있으면 반드시 추상 클래스로 선언되어야 한다.
abstract class A{
abstract public void b();
}
abstract class A{
public String b(){ return name; };
}
프로그램의 설계와 구현을 분리할 수 있다.
계층적 상속 관계를 가지는 클래스들의 구조를 만들 때 적합하다.
abstract class Shape{
public abstract void draw();
}
// 상속받아 구현
class Line extends Shape{
@Override
public void draw(){
System.out.println("Line")
}
class Rect extends Shape{
@Override
public void draw(){
System.out.println("Rect")
}
class Circle extends Shape{
@Override
public void draw(){
System.out.println("Circle")
}