Наследование ООП
class abiturient
{
public:
string name;
};
class student : public abiturient // класс студента наследует атрибут имени
{ // от класса абитуриента
public:
string group;
};class student
{
public:
void Learn()
{
cout << "я учусь!" << endl;
}
};
class professor : public student
{
public:
void Learn()
{
cout << "я преподаю" << endl; // унаследованный метод переопределяется
}
};Класс professor унаследовал метод Learn() от класса student и переопределил его.
student s;
s.Learn(); // Выведет: "я учусь!"
professor p;
p.Learn(); // Выведет: "я преподаю"Один и тот же метод ведет себя по разному в разных классах. Это пример полиморфизма.
class Animal {
void Speak() { cout << "Звук животного" << endl; }
};
class Dog : public Animal {
void Speak() { cout << "Гав-гав!" << endl; }
};
class Cat : public Animal {
void Speak() { cout << "Мяу!" << endl; }
};
Dog dog;
Cat cat;
dog.Speak(); // "Гав-гав!"
cat.Speak(); // "Мяу!"Last updated
