[Java]추상 클래스, 인터페이스

Hyemin_12·2022년 4월 17일
0

Java

목록 보기
2/3
post-thumbnail

추상 클래스, 인터페이스

추상 메서드

  • 선언만 되어 있고, 구현은 되어 있지 않은 메서드
    >서브 클래스에서 쓸 것이므로 굳이 슈퍼 클래스에 정의를 해놓을 필요가 없기 때문
  • abstract를 이용하여 선언한다.
  • 추상 메서드는 서브 클래스에서 오버라이딩하여 구현해야 한다.

추상 클래스

  • 서브 클래스에서 필요로 하는 대부분의 기능을 구현하여 두고 서브 클래스가 상속받아 활용할 수 있도록 하되, 서브 클래스에서만 구현할 수 있는 기능을 추상 메서드로 선언하여 서브 클래스에서 구현하도록 한다.
  • 추킁 클래스는 앞에 abstract를 붙여 만든다.
  • 추상 메서드와 일반 메서드를 모두 포함한다.
  • 상수, 변수 필드를 모두 포함한다.

인터페이스

  • 객체의 기능을 모두 공개한 표준화 문서와 같은 것으로, 개발자에게 인터페이스를 상속받는 클래스의 목적에 따라 인터페이스의 모든 추상 메서드를 만들도록 한다.
  • 변수 필드는 포함하지 않는다.
  • 인터페이스는 앞에 interface를 붙여 만든다.
  • 상수, 추상 메서드, 일반 메서드, default 메서드, static 메서드를 모두 포함한다.
  • protected 접근 지정 선언이 불가하다.
  • 다중 상속을 지원한다.
  • 인터페이스에서는 abstract를 생략해도 추상 메서드로 인식한다.
  • 인터페이스끼리도 상속이 가능하며 클래스와 상속할 때는 implements를 사용하여 구현한다.

추상 클래스와 인터페이스의 유사점

  • 객체를 생성할 수 없고, 상속을 위한 슈퍼 클래스로만 사용된다.
  • 클래스의 다형성을 실현하기 위한 목적으로 사용된다.

추상 클래스와 인터페이스의 가장 큰 차이점

  • 다중 상속(구현)
    >인터페이스는 다중 상속이 가능하다.(추상 클래스는 단일 상속만 지원)
profile
개발 블로그🌱

0개의 댓글