자바(JAVA)/미니 프로젝트 & 기초 공부

Java 기초 또 다시 공부하기 12일차 - 상속(추상 클래스와 추상 메서드)

개발학생 2025. 6. 13. 16:50
반응형

1. 추상 클래스의 정의

  • 클래스들의 공통적인 필드와 메서드를 추출해서 선언하는 클래스
  • 객체를 직접 생성 가능한 실체 클래스와 상속 관계를 가지고 있음 
    -> 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성 물려받고 추가 특성을 가짐
         (특성: 필드와 메서드들을 말함)

추상 클래스-실체 클래스 관계 도식화

2. 추상 클래스의 용도 

  • 공통된 필드와 메서드의 이름을 통일하여, 실체 클래스 작성 시 시간 절약
  • 실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메서드가 제각기 다른 이름을 가질 수 있음
    -> 데이터와 기능이 모두 동일해도 이름이 다르니 객체마다 사용 방법이 달라지므로,
        추상 클래스에 공통 필드와 메서드를 선언하고, 실체 클래스에서 추상 클래스를 상속하여 필드와 메서드 이름을 통일

3. 추상 클래스 선언

  • 클래스 선언 시 abstract 키워드를 붙여,
    new 연산자를 이용하여 객체(인스턴스)를 직접 만들지 못하고 상속을 통해 자식 클래스만 만들 수 있게 함
  • 추상 메서드는 구현되지 않으며 반드시 자식 클래스에서 오버라이딩
  • 일반 메서드를 포함할 수도 있고, 해당 메서드를 자식 클래스에서 그대로 사용 가능
public abstract class 클래스명 {
  // 필드
  // 생성자
  // 메서드
}

추상 클래스 선언 예시-자바 컴파일러 사이트

4. 추상 메서드 오버라이딩

  • 부모 클래스에서 선언한 추상 메서드를 자식 클래스에서 구현하는 과정
    -> 부모 클래스의 추상 메서드를 반드시 자식 클래스에서 구현해야 함
  • @Override 어노테이션을 사용하여 더욱 명확하게 재정의(오버라이딩)
  • 상속을 활용하여 코드의 재사용성과 유지보수성을 향상

추상 메서드 오버라이딩 예시-자바 컴파일러 사이트

 

반응형