프로그래밍/JAVA

[ JAVA ] 추상클래스(abstract class)란?

리신 2022. 10. 27. 21:25
반응형

추상클래스(abstract class)란?

클래스 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다.

단어 뜻 그래도 완성되지 못한 채로 남겨진 설계도를 말한다.

 

하지만 우리가 생각하는 것 처름 클래스가 미완성이라 아무것도 없는 것이 아니라

단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다.

 

 🙄 그래서 추상 클래스 사용하는 이유는 뭘까?

자식 클래스에서 반드시 사용되어야 하는 메소드를 작성해야 할 때이다.

 

🙄그러면 그냥 오버라이딩해서 사용하면 되지 않나?

상속받은 자식 클래스에서는 메소드들이 완전히 구현된 것으로 인식하고 오버라이딩하지 않을 수 있기 때문에 추상 클래스를 사용한다.

반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메소드를 반드시 재정의해야 한다.

 

💡문법💡

abstract class 클래스이름 {
    ...

    abstract 반환타입 메소드이름();

    ...
}

 

참고

추상메서드를 포함하고 있지 않은 클래스에도 키워드 'abstract'를 붙여서 추상클래스로 지정할 수도 있다.
추상메서드가 없는 완성된 클래스라 할지라도 추상클래스로 지정되면 클래스의 인스턴스를 생성할 수 없다.

 


추상메서드(abstract method)란?

메서드는 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상 메서드이다.

즉, 설계만 해 놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메서드인 것이다.

 

🙄 미완성인 상태로 남겨 놓는 이유가 뭘까?

메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 떄문에 조상 클래스에서는 선언부만을 작성하고,

주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려 주고, 실제 내용은 상속받는 클래스에서 구현하도록 비워 두는 것이다.

 

💡문법💡

/* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름();

 

 

 

* 참고 : Java의 정석,

http://www.tcpschool.com/java/java_polymorphism_abstract

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

반응형