추상클래스는 하나의 상속만 가능하다.
인터페이스는 다중상속이 가능하다.
-> 예외, Spring boot에서 Spring-data-jpa를 쓸 때, repository(interface)를 생성하면서 쓸 때, 그럴리는 없지만 repository를 다중상속을 불가능하다.
※ extends를 사용할 경우
※ implements를 사용할 경우
일반클래스가 추상클래스 또는 인터페이스를 상속 받을 시 부모클래스에 있는 메서드를 반드시 오버라이딩을 하여 구현해야한다.
추상클래스 안에는 추상메서드가 존재하지 않을 수 있다.
그리고 추상클래스는 인스턴스화를 하지 못한다.
★ 인터페이스와 추상클래스
▶ 인터페이스안에는 무조건 추상메서드만 존재할 수 있다.
만약, 인터페이스안에 public void find();라는 구현되어있지 않은 메서드가 존재한다고 한다면 이를 실행시켜 컴파일을 하면 public abstract void finde();와 같이 abstract가 붙어서 실행된다.
▶ 추상클래스안에는 추상메서드가 존재할 수 있고 일반 구현된 메서드도 존재할 수 있다. 추상클래스안에 추상메서드를 만들 시에는 abstract를 붙여서 만들게 되어있다.