추상 클래스와 override
추상 클래스는 완전하지 않은 뼈대라서 이 자체를 이용할 수는 없다. 예를 들어 비주얼 스투디오 api에는 ToolWindow라는 추상 클래스가 있다. 이걸 이용하여 solution explorer 같은 창을 만들 수 있다.
비주얼 스투디오 안의 여러 창들은 기능에 따라 모양들이 모두 다르다. 다양한 모양들을 비주얼 스투디오가 일일이 클래스로 구현해 놓고 사용자들에게 쓰라고 할 수는 없다. 꼭 지켜야 하는 형태만 정해 틀을 만들고 이 위에 덧붙이고 덧칠하여 쓰게 한다. 이 과정이 상속이다.
추상 클래스는 그 기능과 형태를 구체적으로 정하지 않으니 그 안의 메떠드와 프라퍼티도 그 기능이 구체적으로 정해져 있지 않다. 이름과 어떻게 쓰라는 방법만 정해져 있다. 구체적인 기능과 내용은 이 클래스를 상속한 클래스에 정해야 한다. 이때 override라는 키워드를 써야 한다.
override는 사전에 기각한다는 뜻으로 나와 있지만 프로그래밍에서는 새롭게 정의한다는 뜻이다. 추상 클래스가 쓰도록 정한 메떠드나 프라퍼티를 쓰겠다는 뜻이다. 만약 override를 쓰지 않으면 상속한 메떠드나 프라퍼티가 아닌 새로운 것들을 정의하는 게 된다. 이러면 추상 클래스가 정한 메떠드나 프라퍼티는 작동하지 않는다.