Home [Java] 추상화
Post
Cancel

[Java] 추상화

추상화

기존 클래스들의 공통적인 부분을 뽑아내서 조상 클래스를 만드는 것이다.

  • 반대되는 개념 구체화
    • 상속을 통해 클래스를 구현, 확장하는 작업이다.
  • 상속계층도를 따라 내려갈수록 구체화의 정도가 심해지며, 올라갈수록 추상화의 정도가 심해진다.

추상메서드

선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것

1
2
/* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름;
  • 추상클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 추상클래스의 추상메서드를 모두 구현하여야 한다.
  • 만약 조상으로부터 상속받은 추상메서드 중 하나라도 구현하지 않는다면, 자손클래스 역시 추상클래스로 지정해 주어야 한다.

추상클래스

클래스가 설계도라면, 추상클래스는 미완성 설계도를 의미한다.

👉 그러므로 인스턴스를 생성할 수 없고, 상속을 통해 자손클래스에서 구현해주어야 한다.

1
2
3
abstract class 클래스이름 {
  	// 멤버변수, 메서드
}
  • 대부분 추상메서드를 가지고 있고, 추상메서드가 없어도 추상클래스로 지정할 수 있다.
  • 추상클래스 자체로는 클래스로서의 역할을 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이되는 조상클래스로서 중요한 의미를 가진다.

출처📎

  • 자바의 정석
This post is licensed under CC BY 4.0 by the author.