JAVA/포스팅

자바 abstract 제어자

짜집퍼박사(짜박) 2023. 11. 12. 00:11

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