Java

추상 클래스(abstract class)

good_da22 2022. 7. 25. 22:24

추상 클래스(abstract class)


클래스가 설계도라면, 추상 클래스미완성 설계도
멤버의 개수와 상관 없이 미완성 메서드(추상 메서드) 를 포함하고 있다.


추상 클래스는 구현이 없는 추상 메서드를 가지고 있기 때문에 객체, 인스턴스를 생성할 수 없으며 상속을 통해서 자식 클래스에서 완성될 수 있다.

하지만 상위 클래스 타입으로써 자식을 참조하는 것은 가능하다. (다형성)


새로운 클래스를 작성에 바탕이 되는 조상 클래스로서 중요한 의미를 가진다.



추상 클래스 선언


abstract class 클래스 이름 {
    ...
}

추상 메서드가 없어도 abstract 키워드를 통해 추상 클래스 선언이 가능하다. 상속 받는 자식 클래스에서 구현을 강제한다.

생성자, 멤버변수, 일반 메서드 모두 가질 수 있다.


추상 메서드(abstract method)


선언부만 작성하고 구현부는 작성하지 않는다. 구현이 없다.


추상 클래스를 상속 받는 경우 추상 메서드를 <오버라이딩> 을 통해 반드시구현

또는 상속 받은 클래스 역시 추상 클래스로 선언



추상 메서드 선언


abstract 리턴타입 메서드이름(); // 괄호 대신 세미콜론을 사용한다.



추상 클래스 사용 이유

구현의 강제를 통해 프로그램의 안정성 향상이 가능


  • 추상화 : 클래스간의 공통점을 찾아 공통의 조상을 만드는 작업
  • 구체화 : 상속을 통해 클래스를 구현, 확장하는 작업



상속


자식 클래스를 만드는데 부모 클래스를 사용

상속 계층을 따라 내려갈수록 클래스 구체화 정도가 심해진다.


추상


기존 클래스의 공통 부분을 뽑아 부모 클래스를 만든다.

상속 계층을 따라 올라갈수록 클래스 추상화 정도가 심해진다.