ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 추상 클래스란?
    JAVA 2025. 2. 12. 22:11
    반응형

    추상클래스란?

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

     

     

    추상 클래스 선언

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

     

     추상 클래스도 일반 클래스와 마찬가지로 필드, 생성자, 메소드 선언을 할 수 있다. new 연산자로 직접 생성자를 호출할 수는 없지만 자식 객체가 생성될 때 super(. . .)를 호출해서 추상 클래스 객체를 생성하므로 추상 클래스도 생성자가 반드시 있어야 한다. 

     

     

    추상 메소드 재정의

    추상 글래스는 실체  글래스가 공통적으로 가져야 할 필드와 메소드들을 정의해 놓은 추상적인 클래스로, 실체 클래스의 멤버(필드, 메소드)를 통일한느 데 목적이있다. 하지만 메소드의 선언만 통일하고, 실행 내용은 클래스마다 달라야 하는 경우가 있다. 이런 경우를 위해서 추상 클래스는 추상 메소드를 선언할 수 있다. 추상 메소드는 abstract 키워드와 함께메소드의 선언부만 있고 메소드 실행 내용인 중괄호 {}가 없는 메소드를 말한다.

     

    추상 클래스 설계시 하위 클래스가 반드시 실행 내용을 채우도록 강제하고 싶은 메소드가 있을 경우 해당 메소드를 추상 메소드로 선언한다. 자식 클래스는 반드시 추상 메소드를 재정의해서 실행 내용을 작성해야 하는데, 그렇지 않으면 컴파일 에러가 발생한다. 이것이 추상 메소드의 위력이다. 

     

     

    핵심키워드

    1. 추상클래스란 클래스들의 공통적인 특성을 추출한 클래스

    2. 추상 클래스 선언에 abstract 키워드 작성

    3. new 연산자를 이용한 객체 생성은 불가능

    4. 자식 클래스 super()를 호출해서 객체 생성하므로 추상 클래스도 반드시 생성자가 있어야 함

    5. 추상 메소드는 자식 클래스에서 반드시 재정의 해야함

Designed by Tistory.