JAVA/포스팅

자바 추상클래스의 작성

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

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