클래스는 추상화된 틀, 객체는 추상화된 틀로부터 나온 구체화된 실체라고 볼 수 있다.
보통 붕어빵을 비유로 들어서 설명하는 것을 많이 본 것 같다.
클래스가 붕어빵을 만드는 틀이고, 객체가 붕어빵 자체인 것이다!
이 두 가지가 같은 것이라고 생각해서 혼용하여 사용했었는데, 찾아보니 약간 다른 의미를 가지고 있었다.
여러가지 형태라는 의미로, 같은 이름으로 다른 기능으로 작동하는 것을 의미한다.
함수 오버로딩, 오버라이딩 등이 다형성을 나타낸다고 할 수 있다
모든 함수가 순수 가상 함수가 이루어져 있는 경우, 해당 클래스를 인터페이스라고 한다
인터페이스를 상속받는 클래스들의 함수의 구현을 강제한다
추상클래스와의 가장 큰 차이점은 다중상속이 가능하다는 점이다. 두가지의 목적이 아래와 같이 전혀 다르기 때문이다. 인터페이스의 목적에 따르면 여러 부모를 갖는 다중 상속도 그저 여러 메서드가 반드시 존재하면 되는 것이기 때문에 상관이 없다