추상클래스
제어자 중에서 abstract라는 것이 있다. 이 제어자가 클래스 앞에 붙으면 추상클래스가 된다.
클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도에 비유할 수 있다. 단어 뜻 그대로 완성되지 못한 채로 남겨진 설계도를 말한다. 미완성 메소드를 포함하고 있다는 의미이다. 추상메소드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다.
추상클래스는 그 자체로 클래스 역할을 다 하지 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서의 중요한 역할을 한다.
추상메서드
메소드는 선언부와 구현부로 구성되어 있다.
추상메소드란 서언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상메소드이다. 실제 내용은 상속받는 클래스에서 구현하도록 비워둔 것이다. 추상메소드 역시 키워드 ‘abstract’를 앞에 붙혀주고, 구현부가 위치할 {}대신 마침을 의미하는 ;을 작성한다.
추상클래스 사용이유
자손 클래스에서 추상메소드를 반드시 구현하도록 강요하기 위해서 이다. 상속받은 자손클래스에서는 메소드들이 완전히 구현된 것으로 인식하고 오버라이딩을 하지 않을 수 있기 때문이다.