Класс – это абстрактный тип данных. С помощью класса описывается некоторая сущность (характеристики и возможные действия)
Описав класс, мы можем создать его экземпляр –объект. Объект – это уже конкретный представитель класса.
Класс – это абстрактное представление чего-либо.
Объект - используемый экземпляр того, что представляет класс.
Основные принципы объектно-ориентированного программирования
Инкапсуляция
Наследование
Полиморфизм
Абстракция
Инкапсуляция
Инкапсуляция – позволяет скрывать внутреннюю реализацию.
В классе могут быть реализованы внутренние вспомогательные методы, поля, к которым доступ для пользователя необходимо запретить.
Наследование
Наследование – позволяет создавать новый класс на базе другого.
Класс, на базе которого создается новый класс, называется базовым, а базирующийся новый класс – наследником.
Например, есть базовый класс животное. В нем описаны общие характеристики для всех животных (класс животного, вес). На базе этого класса можно создать классы наследники (Собака, Слон) со своими специфическими свойствами.
Все свойства и методы базового класса при наследовании переходят в класс наследник.
Полиморфизм
Полиморфизм – это способность объектов с одним интерфейсом иметь различную реализацию.
Например, есть два класса, Круг и Квадрат. У обоих классов есть метод GetSquare(), который считает и возвращает площадь. Но площадь круга и квадрата вычисляется по-разному, соответственно, реализация одного и того же метода различная.
Абстракция
Абстракция – позволяет выделять из некоторой сущности только необходимые характеристики и методы, которые в полной мере (для поставленной задачи) описывают объект.
Например, создавая класс для описания студента, мы выделяем только необходимые его характеристики, такие как ФИО, номер зачетной книжки, группа. Здесь нет смысла добавлять поле вес или имя его кота/собаки и т.д.