В чем различие между классом, объектом и экземпляром?
У @vdem Плохой, негодный пример!
У васи и маши есть общий метод - трахаться. 
Однако, реализация (и, может быть даже, сигнатура) этого метода у них совершенно разные.
Тут налицо наличие базового абстрактногоо класса Человек с виртуальным методом трахаться.
И два унаследованных класа М и Ж, вообще говоря, с сильно разными интерфейсами.
Класс - это шаблон, по которому можно создать объект (его также называют экземпляром класса или инстансом). 
Представим, что  у вас есть документация по самолету вместе с чертежом. Также представим, что будущий создатель самолета это компьютер (на самом деле это может быть не только робот, но и человек). В документации и чертеже четко описано как бы вы хотели, чтобы самолет выглядел, из чего состоял и что умел делать. Чертеж вместе с документацией - это класс. А конкретный самолет, созданный человеком или робот по конкретной документации с чертежом - это объект.
В классе вы указываете поля, которые вы хотели бы видеть, и функции, которые вы будете вызывать у созданного в дальнейшем объекта для определенных операций. Если у вас нет в классе статических полей, то вы не сможете вызывать метод или обратиться к полю, которое вы указали в классе. Только после директивы new или (после передачи ссылки на уже существующий объект в памяти), объект создается в оперативной памяти компьютера и вы можете обращатья к полям и методам. Данные для каждого созданного объекта уникальны (не в плане значений, ведь вы можете указать значения по-умолчанию в конструкторе или просто указать одни и те же параметры инициализации) в плане хранения в памяти. Даже если у вас два объекта с одинаковым значением поля, для компьютера эти поля находятся в разных местах памяти.