abstract 키워드 사용, 자식 클래스에게 구현 가이드 제공.public abstract void sayHello();abstract 키워드 사용, 객체 생성 불가, 상속을 통한 사용만 가능.public abstract class Hello {
public abstract void sayHello();
}예제 코드/*
* 추상 클래스 Shape가 도형의 개념을 정의하고,
* 이를 상속받는 Circle와 Square 클래스가 추상 메서드를 구현합니다.
* 이를 통해 다형성을 활용하여 각 도형의 면적을 계산합니다.
*/
// 추상 클래스 정의
abstract class Shape {
// 추상 메서드 정의 (하위 클래스에서 반드시 재정의해야 함)
public abstract double calculateArea();
}
// 추상 클래스를 상속받는 구체적인 도형 클래스들
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double calculateArea() {
return side * side;
}
}
public class Main {
public static void main(String[] args) {
// 추상 클래스의 객체 생성 불가능
// Shape shape = new Shape(); // 에러 발생
// 다형성을 통한 활용
Shape circle = new Circle(5.0);
Shape square = new Square(4.0);
// 다형성을 통해 각 도형의 면적 계산
System.out.println("원의 면적: " + circle.calculateArea());
System.out.println("정사각형의 면적: " + square.calculateArea());
}
}
실행 결과
원의 면적: 78.53981633974483
정사각형의 면적: 16.0