лиц Общественный Наземный Подземный Объектно-ориентированное программирование служит для моделирования сложных систем, позволяя увеличить управляемость процесса моделирования.
иерархии или вложения. Инкапсуляция. Для контроля объектов. Полиморфизм. Для работы с интерфейсом. Абстракция. Выделение главного из предметной области для построения модели.
any_metod(){} virtual var method_1(){ // код метода virtual var method_2(){ // код метода public: Base_Class(); ~Base_Class(); } class New_Class: public Base_Class{ protected: var b var method_1() override{ // новая реализация метода } var method_2(int v){ // реализация метода } public: New_Class(); ~New_Class(); }
var any_metod(){} virtual var method(){ // код метода public: Base_Class() a = 3; ~Base_Class(); } class New_Class: public Base_Class{ protected: var b var method() override{ // новая реализация метода } public: New_Class():Base_Class() b = 4; ~New_Class(); }
private: var b; c; public: void set_a(var a_1) a = a_1; void set_b(var b_1) b = b_1; var get_a() return a; } Типы наследования: 1) class New_Class: public Base_Class Все члены родительского класса сохраняют уровень доступа. 1) class New_Class: private Base_Class Все члены родительского класса приобретают уровень доступа private. 1) class New_Class: protected Base_Class Все члены родительского класса приобретают уровень доступа protected.
virtual var method_1(){ // код метода virtual var method_2(){ // код метода public: Base_Class(); ~Base_Class(); } class New_Class: public Base_Class{ protected: var b var method_1() override{ // новая реализация метода } var method_2(int v){ // реализация метода } public: New_Class(); ~New_Class(); } Полиморфизм
a var any_metod(){} virtual var method_1()=0 public: Base_Class(); ~Base_Class(); } class New_Class: public Base_Class{ protected: var b var method_1() { // реализация метода } public: New_Class(); ~New_Class(); } У абстрактных классов не может быть экземпляров, несмотря, на наличие конструктора. А также любой класс, который от них наследует, обязан реализовать все функции, которые не были реализованы в родительском классе.
method_1()=0 public: ~Base_Class(); } class New_Class: public Base_Class{ protected: var b var method_1() { // реализация метода } public: New_Class(); ~New_Class(); } У интерфейсов не может быть экземпляров. У них нет полей. Любой класс, который от них наследует, обязан реализовать все функции интерфейса.