금융에 대한 모든 것

 추상 클래스는 상속될 것을 전제로 하여 만들어진 클래스입니다. 추상 클래스에서는 구현하지 않은 추상 메서드를 정의할 있는데 상속한 클래스는 반드시 메서드들을 정의해야 합니다. 공통적인 기능이나 API 설계할 자주 사용됩니다.

 

추상 클래스 만들기

// 추상 메서드를 가지는 클래스는 추상 클래스가 됨
public abstract class AbstractClass {
     
     // 일반 메서드
     public void printString(String str) {
         System.out.println(str);
     }

     // 추상 메서드
     public abstract String returnString(String str);
}

먼저 추상 클래스는 abstract 키워드를 붙입니다. 그리고 추상 클래스 안에는 일반 메서드와 추상 메서드를 정의할  있습니다. 추상 메서드를 정의하는 경우에는 인터페이스처럼 정의만 해주고 구현 부분은 만들지 않습니다

 

추상 클래스 만들기

public class A extends AbstractClass {
     
     // 반드시 구현해야 함
     @Override
     public returnString(String str) {
         // 출력하고 반환
         printString(str);
         return str;
     }
}

public class B extends AbstractClass {
     
     // 반드시 구현해야 함
     @Override
     public returnString(String str) {
         // 반환만 실행
         return str;
     }
}

추상 메서드의 구현은 추상 클래스를 상속받은 클래스에서 구현합니다. 하나의 추상 클래스를 상속하는 클래스는 여러 개를 만들  있으며 추상 메서드의 기능을 각각 다르게 구현할  있습니다.

 

실행

A a = new A();
B b = new B();

a.returnString("string"); // 결과: "string"
b.returnString("string"); // "string" 반환

상속받은 A, B 객체를 만들어 각각 returnString 호출하고 있는 모습입니다. 구현을 다르게 했기 때문에 다른 기능이 실행되고 있음을 확인할  있습니다.

 

 

반응형