자바의 추상 클래스

Jeong Gyejin·2023년 2월 23일
0

JAVA

목록 보기
9/18

객체를 직접 생성할 수 있는 클랠스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 합니다.
추상 클래스와 실체 클래스는 상속의 관계를 가지고 있습니다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성을 가질 수 있습니다.

추상 클래스의 용도

실체 클래스의 공통적인 필드와 메소드를 뽑아내어 추상 클래스로 만드는 이유는?

  • 공통된 필드와 메소드의 이름을 통일할 목적
    실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메소드가 제각기 다른 이름을 가질 수 있습니다. 이렇게 이름이 다르다보니 객체마다 사용방법이 달라집니다.
    추상 클래스를 상속함으로써 필드와 메소드 이름을 통일할 수 있습니다.

  • 실체 클래스를 작성할 때 시간 절약
    공통적인 필드와 메소드는 추상 클래스에 모두 선언해두고, 다른 점만 실체 클래스에 선언하면 실체 클래스를 작성하는데 시간을 절약할 수 있습니다.

추상 클래스 선언

추상 클래스를 선언할 때는 abstract 키워드를 붙여야 합니다. abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있습니다.

추상 메소드와 재정의

  • 모든 실체들이 가지고 있는 메소드의 실행 내용이 동일하다면 추상 클래스에 메소드를 작성하는 것이 좋을 것입니다.
    하지만 메소드의 선언만 통일하고, 실행 내용은 실체 클래스마다 달라야 하는 경우가 있습니다.
  • 이런 경우를 위해서 추상 클래스는 추상 메소드를 선언할 수 있습니다. 추상 메소드는 abstract 키워드와 함께 메소드의 선언부만 있고 메소드 실행 내용인 중괄호{}가 없는 메소드를 말합니다.
  • 추상 클래스 설계 시 하위 클래스가 반드시 실행 내용을 채우도록 강제하고 싶은 메소드가 있을 경우, 해당 메소드를 추상 메소드로 선언합니다. 자식 클래스는 반드시 추상 메소드를 재정의해서 실행 내용을 작성해야합니다.
profile
항상 더 나은 개발자가 되기 위해서 끊임없이 공부하고 학습하면서 성장하는 사람이 되겠습니다.

0개의 댓글