Language/Java

abstract

snowkit 2022. 7. 17. 23:37

사용법

  • 클래스에 선언해서 추상 클래스로 만들면 인스턴스를 생성할 수 없게 된다
    • 슈퍼 클래스 역할만 하는 경우, 인스턴스를 생성할 수 없도록 클래스에 선언한다
    • 생성자를 선언할 수 있으며, 이 생성자는 서브 클래스에서 사용된다
  • 메소드에 선언해서 추상 메소드로 만들면 구현을 강제할 수 있다
    • 추상 메소드는 추상 클래스와 인터페이스에서 선언 가능

추상 클래스(abstract class)와 interface의 차이점

추상 클래스(abstract class)

  1. Java는 다중 상속을 지원하지 않기 때문에 1개의 클래스만 상속 가능
  2. 필드(상태)와 생성자를 가질 수 있다

추상 메소드(abstract method)

  • 상속 받는 클래스에서 구현
  • 메소드에 abstract 키워드 추가 필요
  • 허용된 접근 제어자: public, protected, package-private(기본값)

구상 메소드(concrete method)

  • 추상 클래스에서 구현
  • 허용된 접근 제어자: public, protected, package-private(기본값), private

interface

  1. Java는 다중 구현을 지원하기 때문에 여러 인터페이스를 구현할 수 있다
  2. 필드(상태)와 생성자를 가질 수 없다

추상 메소드(abstract method)

  • 상속 받는 인터페이스 또는 구상 클래스에서 구현
  • 메소드에 abstract 키워드 추가 불필요(기본값)
  • 허용된 접근 제어자: public(기본값)

기본 메소드(default method)

  • 인터페이스에서 구현
  • 메소드에 default 키워드 추가 필요
  • 허용된 접근 제어자: public(기본값)

'Language > Java' 카테고리의 다른 글

final  (0) 2022.07.17
생성자(Constructor), this(), super()  (0) 2022.07.17
변수, 메소드, this, super  (0) 2022.07.17
오버라이딩(Overriding), 오버로딩(Overloading)  (0) 2022.07.17
초기화 블록(Initialization block)  (0) 2022.07.17