abstract 제어자는 자바에서 추상 클래스와 추상 메서드를 선언할 때 사용됩니다. 추상 클래스는 객체를 직접 생성할 수 없으며, 추상 메서드는 선언만 되고 구현은 하위 클래스에서 이루어집니다.
1. 추상 클래스 (Abstract Class) 예제
// AbstractShape.java
public abstract class AbstractShape {
// 추상 메서드 선언
public abstract void draw();
// 일반 메서드도 포함할 수 있습니다.
public void displayInfo() {
System.out.println("This is a shape.");
}
}
// Circle.java
public class Circle extends AbstractShape {
// 추상 메서드의 구현
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
// Rectangle.java
public class Rectangle extends AbstractShape {
// 추상 메서드의 구현
@Override
public void draw() {
System.out.println("Drawing a rectangle.");
}
}
추상 클래스 AbstractShape는 draw라는 추상 메서드를 선언하고, 이를 상속받은 구체 클래스 Circle과 Rectangle에서 실제로 구현합니다.
2. 추상 메서드 (Abstract Method) 예제
// Animal.java
public abstract class Animal {
// 추상 메서드 선언
public abstract void makeSound();
// 일반 메서드
public void sleep() {
System.out.println("Animal is sleeping.");
}
}
// Dog.java
public class Dog extends Animal {
// 추상 메서드의 구현
@Override
public void makeSound() {
System.out.println("Dog barks.");
}
}
추상 클래스 Animal은 makeSound라는 추상 메서드를 선언하고, 이를 상속받은 구체 클래스 Dog에서 실제로 구현합니다.
3. 주의사항
- 추상 클래스는 객체를 직접 생성할 수 없으므로, 하위 클래스를 통해 객체를 생성해야 합니다.
- 추상 메서드는 하위 클래스에서 반드시 구현되어야 합니다. 만약 하위 클래스에서 구현되지 않으면 해당 클래스도 추상 클래스가 되어야 합니다.
- 추상 클래스나 추상 메서드는 특정한 의미 있는 동작이나 구현을 강제하기 위해 사용됩니다.
- 추상 클래스의 추상 메서드를 구현하지 않고 해당 추상 클래스를 일반 클래스로 사용하려면 그 클래스도 abstract로 선언되어야 합니다.
추상 클래스와 추상 메서드는 다형성과 함께 상속의 일부로 사용되어, 공통된 특징이나 동작을 정의하고 다양한 하위 클래스에서 구현할 수 있도록 합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 volatile 제어자 (0) | 2023.11.12 |
---|---|
자바 synchronized 제어자 (0) | 2023.11.12 |
자바 static 제어자 (0) | 2023.11.12 |
자바 final 제어자 (0) | 2023.11.12 |
자바 private 제어자 (0) | 2023.11.11 |