티스토리 뷰

추상 클래스

하나 이상의 메서드가 추상메서드이거나 abstract로 정의된 경우

public abstract class 클래스이름 { 
    public abstract void 메서드이름();
}
  • 추상 클래스는 인스턴스, 즉 객체를 만들 수 없는 클래스 입니다. (추상 클래스를 구현한 클래스의 인스턴스는 만들 수 있다.)
  • 추상 메소드는 하위 클래스에서 메소드의 구현을 강제해야 합니다.
  • 추상 메소드를 포함하는 클래스는 반드시 추상 클래스여야 합니다.
  • 상속하는 집합간에는 연간관계가 있습니다.
  • 다중 상속이 불가능합니다.

인터페이스

모든 메서드가 추상메서드인 경우

인터페이스는 ==상수와 추상메서드== 의 집합이다.

interface 인터페이스이름 { 
    public abstract void 메서드이름();
    public default void 메서드이름() {}; 
}
  • 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있습니다.
  • 모든 메소드는 public abstract 이어야 하며, 이를 생략할 수 있습니다.
  • Java 8 부터는 static, default method를 사용할 수 있습니다.
  • 다중상속이 가능합니다.
  • 상속하는 집합간에는 연관관계가 존재하지 않을 수 있습니다.

차이점

(추상) 클래스 : extends 사용

  • 상속은 재사용과 확장성을 위한 것.
  • ==is kind of== 관계. 자식 클래스는 부모 클래스의 한 종류여야 함.
  • 다시 말해 자식은 부모클래스의 메서드를 재사용하고 확장할 수 있다.

인터페이스 : implements

  • 기능을 강제하도록 한다. (인터페이스에 정의된 모든 메서드를 구현해야되기 때문.)
  • ==is able to== 관계

상속은 물려줄 특성,메소드가 많을 수록 좋고, 인터페이스는 구현해야 될 메소드가 적을 수록 좋다.

참고자료

https://devlog-wjdrbs96.tistory.com/370

'🧩 자바' 카테고리의 다른 글

[Data Structure] Tree  (0) 2023.06.01
BFS, DFS  (0) 2023.05.16
[Data Structure] 큐  (0) 2023.02.01
[Data Structure] 스택  (0) 2023.01.31
[Data Structure] 단순 연결 리스트  (0) 2023.01.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함