추상 클래스

인철·2023년 10월 13일
0

Java

목록 보기
26/52

추상 클래스

추상 클래스

  • 일부 메서드의 구현이 누락된 클래스
  • 다른 클래스에서 이를 상속받아 완전한 클래스로 만들어 사용
  • 객체를 직접적으로 생성 x
  • 단순히 다른 클래스들이 해당 추상클래스를 상속받아 구현할 수 있도록 하는 역할

문법

// 추상 클래스의 선언
abstract class MyAbstractClass {
    // 추상 메서드 선언
    abstract void abstractMethod();
// 일반 메서드
void regularMethod() {
    // 메서드 구현
}

}


> 구조 
- 일반 크래스와 유사하나 적어도 하나 이상의 추상 메서드 포함해야함

> 쓰이는 상황
- 객체의 동작을 정의하는데 있어서 일부 메서드가 완전하지 않고 구현이 필요한 경우
- 다수의 서브 클래스가 공통적인 특성이 있을 때 사용

> 주의할 점
- 서브 클래스에서 반드시 추상 메서드 구현
- 상속을 통해 확장해야함

> 특징 
- 하나 이상의 추상 메서드 포함
- 일반 메서드와 멤버 변수 포함 가능
- 상속받아 완전한 클래스로 확장하여 사용

> 기능 
- 공통된 특징을 추상화하여 코드의 재사용성 높임
- 강제로 서브 클래스에서 해당 메서드를 구현하도록 유도

```java
// 추상 클래스의 정의
abstract class Shape {
    String name;

    // 추상 메서드
    abstract void draw();

    // 일반 메서드
    void display() {
        System.out.println("도형: " + name);
    }
}

// 추상 클래스를 상속받는 구체적인 클래스
class Circle extends Shape {
    Circle() {
        this.name = "원";
    }

    // 추상 메서드의 구현
    void draw() {
        System.out.println("원을 그립니다.");
    }
}

// 메인 클래스
public class Main {
    public static void main(String[] args) {
        // 추상 클래스를 인스턴스화할 수 없으므로 구체적인 클래스를 이용하여 객체 생성
        Circle circle = new Circle();
        circle.display();
        circle.draw();
    }
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글