추상적인 내용만 정의하고 있는 클래스로 구체적인 내용은
하위 클래스에서 구현되도록 해놓은 클래스
abstract 추상클래스명{
abstract 추상메서드명();
}
추상메서드는 자식클래스에서 강제적으로 반드시 재정의 해야한다.
강제성을 부여한다.
(실습예제)
public abstract class Shape {
//일반변수 선언
double area;
//추상메서드 : 면적 구하기
abstract void showArea(double w, double h);
//일반메서드 : final : 자식클래스에서 재정의 하는것을 막기위해서, 사용의 목적만!
final void function() {
System.out.println("추상 클래스의 일반 메서드입니다.");
}
}
class Rect extends Shape{
@Override
void showArea(double w, double h) {
area = w*h;
System.out.println("넓이 : "+area+"cm²");
}}
class Tri extends Shape{
@Override
void showArea(double w, double h) {
area = (w*h)/2;
System.out.println("넓이 : "+area+"cm²");
}}
(다른 클래스에서 실행)
public class Board {
public static void main(String[] args) {
new Rect().showArea(10, 50);
new Tri().showArea(30, 15.9);
}}
(실행결과)