키워드는 바로 abstract입니다. 리턴형 앞에 적어줍니다. 그런데 메서드가 하나라도 추상 메서드라면 해당 클래스는 추상 클래스가 될 수밖에 없습니다. 따라서 클래스 앞에도 추상 클래스라는 의미로 abstract 키워드를 붙여줍니다.
package javaStudy;
public abstract class Bird {
public abstract void sing();
}
이제 Bird 클래스는 추상 클래스입니다. 그럼 추상 클래스는 추상 메서드만 가질 수 있을까요? 그건 아닙니다. 예를 들어 새들은 대부분 날 수 있으므로 fly라는 메서드를 일반 메서드로 만들어보겠습니다.
package javaStudy;
public abstract class Bird {
public abstract void sing();
public void fly() {
System.out.println("날다.");
}
}