본문 바로가기
Java

[Java] 추상 클래스

by 스응 2023. 2. 11.
728x90
728x90

추상 클래스 (Abstract class)

  - 하나 이상의 추상 메서드를 포함하거나, abstract 키워드를 가진 클래스

  - 추상적인 개념

      → 화면에 나타낼 수 없는 것들  ex) 게임

  - 인스턴스화를 할 수 없음 (new 키워드 사용 불가)

      → 오류 : 부모클래스 참조변수 = new 부모클래스();

      → 업 캐스팅 가능 : 부모클래스 참조변수 = new 자식클래스();

 

// 추상 클래스
접근제어자 abstract class 클래스명 {

    ...

    // 추상 메서드
    접근제어자 abstract 반환자료형 메서드명(매개변수);

}

#  추상 메서드

  - 구현 코드 없이 메서드의 선언만 있는 메서드 (중괄호 {}가 없음)

  - 추상 클래스에 추상 메서드가 없을 수는 있음

      → 그러나, 추상 메서드가 있으면 반드시 추상 클래스가 되어야 함 (강제성)

  - 추상 메서드는 자식 클래스가 상속받아서, 메서드 오버라이드를 통해 코드를 구현함

      ⇒ 추상 메서드 : 자식 클래스가 구현해야 하는 메서드

 

추상 클래스의 상속

// 1. 부모 클래스와 동일하게 추상 클래스로 정의하는 경우

public abstract class 자식클래스명 extends 부모클래스명 {
    ...
}

-------------------------------------------------------

// 2. 부모 클래스와 다르게 일반 클래스로 정의하는 경우

public class 자식클래스명 extends 부모클래스명 {

    // 메서드 오버라이드 : 부모의 추상 메서드를 일반 메서드로 재정의
    @Override
    public 반환자료형 메서드명(매개변수) {
        super.메서드명();  // 부모 메서드 호출
        ...
    }
}

 

  - 자식 클래스를 일반 클래스로 구현하려면 부모 클래스의 모든 추상 메서드를 재정의해야 함

 

320x100
반응형

댓글