Информатика и технология программирования


Назад: Си++ = Си + классы + объектно-ориентированное - часть 3


public: void f() {}
};
class b : public a
{
public: void newb() {} // newb() - новое свойство (метод)


};



2.l " Полное неявное наследование" . Если в производном классе метод не переопределяется, то по умолчанию он наследуется из базового класса. Это значит, что он может быть применен к объекту производного класса, при этом будет вызван метод для базового класса, причем именно для объекта базового класса, включенного в производный. Определенное в базовом классе свойство не меняется.


class a {
public: void f() {}
};
class b : public a
{
public: // f() - унаследованное свойство (метод)


}; // эквивалентно void f() { a::f(); }




3. l " Полное перекрытие" . Если в производном классе определяется метод, совпадающий с именем с методом базового класса, причем в теле метода отсутствует вызов одноименного метода в базовом классе, то мы имеем дело с полностью переопределенным свойством. В этом случае свойство объекта базового класса в производном классе отрицается, а метод производного класса " перекрывает" метод базового.


class a {
public: void f() {}
};
class b : public a
{
public:
void f() {...} // переопределенное свойство (метод)


};



4. l " Условное наследование" . Наиболее точно отражает сущность наследования последний вариант, в котором в производном классе переопределяется метод, перекрывающий одноименный метод базового класса. Но в методе базового класса обязательно имеется вызов перекрытого метода базового класса - условный или безусловный. Этот прием наиболее полно соответствует принципу развития свойств объекта, поскольку свойство в производном классе является усложненным вариантом аналогичного свойства объекта базового класса.


class a {
public: void f() {}
};
class b : public a
{
public:
void f()
{... a::f(); .... }
// Переопределенное свойство развивает соответствующее свойство объекта


// базового класса. Переопределенный метод в явном виде вызывает метод


// в базовом классе по его полному имени.


};




Начало  Назад  Вперед



Книжный магазин