추상클래스: 멤버변수와 메서드가 있으나 메서드가 선언만 되고 구현이 되지않음(추상메서드)
상속받는 클래스에서 오버라이드(재정의)해서 사용함.
기본틀이 있고 어느정도 클래스의 역할을 함. 클래스로써 기본적으로 있을것은 다있는 클래스
그러나 new 클래스()를 통해서 인스턴스(객체)를 생성해서 사용할 수없다. 그래서 상속을 해서 상속받는 자식 클래스가 메서드를 구현하여 사용한다.
참고: 오버라이드시 조상의 메서드보다 넓은 범위의 접근 제어자를 지정해야 한다.(자바의 정석 1권 p.384)
인터페이스 : 일종의 추상클래스이지만 멤버변수만 있거나 혹은 메서드만 있는 클래스의 형태가 아닌 클래스이다. 자주 사용하거나 중요한 변수 혹은 메서드를 선언만 해서 모아놓는다. 추상클래스처럼 메서드를 추상메서드를 정의한다.
다만 추상클래스는 다중상속이 되지 않으며 인터페이스는 다중상속이 가능하다. 그러나 자바에서 인터페이스를 사용해서 다중상속을 구현하는 경우는 거의 없다(자바의 정석 1권 p.385)