개발로드

★KDT 2024-01-25☆추상 클래스 본문

JAVA

★KDT 2024-01-25☆추상 클래스

위대한개발자 2024. 1. 25. 16:37
추상 클래스란
직접 인스턴스화할 수 없는 클래스이다. 이는 다른 클래스의 청사진 역할을 하며 본문이 없는 메서드인 추상 메서드를 포함할 수 있다. 추상 클래스는 주로 여러 하위 클래스가 공유하는 공통 동작과 특성을 정의하는 데 사용되며, 코드 재사용을 허용하고 계층 구조를 승격시킨다.
추상클래스의 주의사항
추상 키워드  추상 클래스는 Java에서 abstract 키워드를 사용하여 정의된다.
하나 이상의 추상 메서드가 있는 모든 클래스는 추상으로 선언되어야 한다.
추상 메소드 추상 메소드는 본문 없이 선언되며 중괄호 대신 세미콜론으로 끝난다.
이러한 메서드는 추상 클래스를 확장하는 구체적인 하위 클래스로 구현되어야 다.
인스턴스화 제한 추상 클래스는 'new' 키워드를 사용하여 직접 인스턴스화할 수 없다.
다른 클래스의 슈퍼(super())클래스로만 사용할 수 있다.
상속 추상 클래스는 다른 클래스에 의해 하위 클래스로 분류(확장)될 수 있다.
서브클래스 자체가 추상 클래스가 아닌 이상 서브클래스는 슈퍼클래스에 선언된 모든 추상
메서드를 구현해야 한다.
구체적인 메소드 추상 클래스는 추상 메소드와 구체적인(비추상) 메소드를 모두 가질 수 있다.
구체적인 메서드에는 본문({})이 있으며 하위 클래스에서 상속할 수 있는 기본 동작을 제공한다.
필요한 경우 하위 클래스는 구체적인 메서드를 재정의(Override)할 수 있다.
부분 구현 추상 클래스에는 구현된(구체적) 메소드와 구현되지 않은(추상) 메소드가 혼합되어 포함될 수 있다.
이를 통해 공유 동작과 하위 클래스의 특정 구현 세부 사항을 결합할 수 있다.

 

 


이 예에서 Animal은 추상 메서드 makeSound()와 구체적인 메서드 eat()가 있는 추상 클래스이다. 'Dog' 및 'Cat' 서브클래스는 'Animal'을 확장하고 'makeSound()' 메서드 구현을 제공한다. 이러한 구체적인 서브클래스는 인스턴스화될 수 있으며, 공통 추상 상위 클래스를 통해 다형성 동작을 허용한다.