ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 추상 클래스(abstract class)
    JAVA 2023. 3. 2. 20:50

     


    추상 클래스 : 객체를 생성할 수 있는 클래스(실체 클래스)들의 공통적인 필드나 메소드를 추출해서 선언한 클래스

    1. 한 클래스 안에 추상 메소드가 하나 이상 존재하면 그 클래스도 추상 클래스로 만들어야 한다.
      - 추상 클래스에는 객체를 정의할 수 없다.
      - 추상 메소드와 인스턴스 메소드가 혼재될 수 있다.​
    2. 추상 클래스를 상속받는 하위 클래스들은 반드시 추상 메소드를 강제로 오버라이딩해야 한다.
      - 동일한 상위 클래스를 상속받는 하위 클래스에 동일한 이름의 상위 클래스 메소드를 사용하도록 규격화할 때 추상 클래스를 사용
      - 사물들의 공통적인 특징을 추상화(= 단순화)하면 쉽게 제어할 수 있다.​

    ※ java는 다중 상속(서로 다른 클래스를 동일 단계의 상위 클래스로 하여 상속받는 것)을 허용하지 않음.

     


    추상 클래스 선언

    • 클래스 선언 시 abstract 키워드를 class 키워드 앞에 추가하면 추상 클래스가 된다.
    public abstract class 클래스명 {
        //필드
        //생성자
        //
    }

     

     


    추상 메소드

    • 선언부(리턴타입, 메소드명, 매개변수)는 동일하지만 추상 클래스를 상속받는 각각의 클래스마다 실행 내용은 다른 메소드
    • 추상 메소드는 추상 클래스에 실행 내용을 작성하지 않는다.
      모든 자식 클래스에서 공통으로 사용해야 하는 메소드라는 것을 의미
      실행 내용은 상속받는 클래스에서 재정의 시 작성한다.

    • 추상 클래스에서 메소드 선언 시 리턴타입 앞에 abstract 키워드를 추가하면 추상 메소드가 된다.
      메소드 블록(중괄호 {}) 없이 세미콜론(;)으로 마무리한다.

     

    abstract 리턴타입 메소드명(매개변수, ...);

     


     

    'JAVA' 카테고리의 다른 글

    익명 클래스(Anonymous Class)  (0) 2023.03.02
    인터페이스(Interface)  (0) 2023.03.02
    다형성(Polymorphism)  (0) 2023.03.02
    final 키워드  (0) 2023.03.02
    접근 제한자(access modifier; 접근 제어자)  (0) 2023.03.02
Designed by Tistory.