1. 추상클래스의 정의
추상클래스를 정의하려면 abstract 키워드를 사용해야 합니다.
abstract class MyAbstractClass {
// 추상 메서드, 일반 메서드, 멤버 변수 등이 올 수 있음
}
2. 추상 메서드의 정의
추상클래스는 하나 이상의 추상 메서드를 가질 수 있습니다. 추상 메서드는 본체가 없는 메서드로, 하위 클래스에서 반드시 구현되어야 합니다.
abstract class MyAbstractClass {
abstract void abstractMethod();
}
3. 일반 메서드와 멤버 변수
추상클래스는 추상 메서드 외에도 일반 메서드와 멤버 변수를 가질 수 있습니다. 이들은 하위 클래스에서 공통적으로 사용되는 로직이나 속성을 포함할 수 있습니다.
abstract class MyAbstractClass {
abstract void abstractMethod();
void commonMethod() {
// 구현
}
int commonVariable;
}
4. 추상클래스의 상속
추상클래스를 상속받는 하위 클래스는 추상 메서드를 반드시 구현해야 합니다. 구현하지 않으면 하위 클래스도 추상 클래스가 되어야 합니다.
class MyConcreteClass extends MyAbstractClass {
void abstractMethod() {
// 추상 메서드 구현
}
}
5. 추상클래스의 활용
추상클래스는 공통된 특징을 가진 클래스의 공통 부분을 추상화하여 중복 코드를 방지하고, 하위 클래스에서 다양한 구현을 가능하게 합니다.
abstract class Shape {
int x, y;
abstract void draw();
void move(int newX, int newY) {
x = newX;
y = newY;
}
}
class Circle extends Shape {
int radius;
void draw() {
// 원 그리기 구현
}
}
class Rectangle extends Shape {
int width, height;
void draw() {
// 직사각형 그리기 구현
}
}
6. 추상클래스의 목적
추상클래스는 일부 메서드의 구현을 강제하여 일관된 인터페이스를 제공하고, 동시에 다양한 하위 클래스에서 각자의 특징을 구현할 수 있도록 합니다.
이렇게 작성된 추상클래스는 상속을 통해 하위 클래스에게 공통된 규약(인터페이스)을 제공하며, 다형성을 활용하여 다양한 하위 클래스의 객체를 일관적으로 다룰 수 있게 합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 인터페이스의 작성 (0) | 2023.11.13 |
---|---|
자바 인터페이스 (0) | 2023.11.13 |
자바 추상클래스 (0) | 2023.11.12 |
자바 매개변수의 다형성 (0) | 2023.11.12 |
자바 참조변수와 인스턴스의 연결 (0) | 2023.11.12 |