[DEV] J-Jay

추상(abstract) 본문

Back-end/Java

추상(abstract)

J-Jay 2023. 4. 30. 15:34
728x90
추상 클래스 ( abstract calss)

Java에서 추상 클래스는 abstract 키워드로 정의되며, 일반 클래스와 달리 객체를 직접 생성할 수 없는 클래스이며

상속을 통해서만 사용된다.

상속받은 하위 클래스는 추상 메소드를 반드시 오버라이딩하여 구현해야 한다.

 

추상 클래스는 객체를 생성할 수 없으므로, 일반적으로 인터페이스와 함께 사용된다. 추상 클래스는 인터페이스와 달리 일부 메소드를 구현할 수 있으며, 추상 메소드도 함께 선언할 수 있다.

추상 클래스 내부에서 선언된 추상 메소드는 메소드 본문(body)이 없으며, 선언부만 존재한다.

 

추상 클래스는 일반 클래스와 마찬가지로 생성자를 가질 수 있다. 하지만 추상 클래스의 생성자는 하위 클래스에서 생성자를 호출할 때 사용된다. 만약 하위 클래스에서 생성자를 구현하지 않으면 컴파일 오류가 발생한다.

 

Java에서 추상 클래스와 추상 메소드를 사용하는 이유

 

  • 재사용성과 유지보수성
    추상 클래스와 추상 메소드를 사용하면 인터페이스와 같은 추상화(abstraction)를 구현할 수 있다.

  • 다형성(polymorphism)을 구현
    하위 클래스에서 추상 메소드를 구현하면, 다형성을 이용하여 해당 메소드를 호출할 수 있다.



'Back-end > Java' 카테고리의 다른 글

Java I/O - 1  (0) 2023.05.01
인터페이스(interface)  (0) 2023.04.30
Generic  (0) 2023.04.29
String  (0) 2023.04.23
static  (0) 2023.04.17