추상메서드는 선언부만이 존재하며, 구현부는 작성되어 있지 않다.
작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것이다.
- 추상메소드와 일반적인 메소드를 선언할 수 있다.
- 추상 클래스를 상속받는 모든 서브 클래스들은 추상 메소드를 반드시 재정의 해야한다.
- new 연산자 사용을 통한 인스턴스화가 불가능하다.
- 추상 클래스를 선언할 때는 abstract 키워드를 사용해야 한다.
- 다중 상속이 불가능 하다.
일반 클래스 사용과는 다르게 추상 클래스는 '시동'이라는 메서드에 중괄호{} 대신 세미콜론;이 붙는다
추상 메서드를 선언했다면 자식 클래스는 해당 메서드를 반드시 구현하도록 강제된다.
또한 자바는 다중 상속을 지원하지 않기 때문에 여러 개의 추상클래스를 상속할 수 없다.
- 클래스에 다중 상속이 가능하다.
- 인터페이스 안에는 무조건 추상 메서드만 들어가야 된다.
- 메서드 앞에 abstract를 붙히지 않아도 된다.
- 인터페이스를 상속 받을 때는 extends가 아니라 implements를 사용한다.
ex) 엔진 implements 차- 인터페이스를 상속 받으면 무조건 오버라이딩 하는 메서드 앞에 public을 붙여야한다.
인터페이스의 가장 큰 특징은 상속에 구애받지 않는 구현이 가능하다는 것이다.