Как сказал Морон, попробуй сам. Но, чтобы создать больше структуры вокруг темы ...
Существует наследование интерфейса (какие методы я могу вызвать для объекта?) И наследование реализации (какой код вызывается, когда я вызываю этот метод для этого объекта?). Чистые виртуальные методы обеспечивают наследование интерфейса, но не наследование реализации. Виртуальный (но не чистый) метод предоставляет оба варианта, позволяя производному классу предоставлять другую реализацию. Не виртуальный метод обеспечивает оба, без возможности позволить производному классу обеспечить другую реализацию.