Я проходил тест и встречал вопрос, в котором мы не нашли соглашения с моими коллегами.
C++
1 class Base {};
2 class Derived : public Base {};
3 class Foo
4 {
5 public:
6 Foo()
7 {
-8- Base* b = new Derived(); // Concept name is?
9 }
10 };
С#
1 abstract class Base{}
2 public class Derived : Base{}
3
4 public class Foo
5 {
6 public Foo
7 {
-8- Base b = new Derived(); // Concept name is?
9 }
10 }
Возникает вопрос: строка № 8 выше является примером следующей концепции оо
- Полиморфизм
- Агрегация
- Герметизация
- Абстракция
- Наследование
Пожалуйста, поставьте ссылку с ответом на источник знаний.
P.S. Тест представляет собой "OO Concept" на breinbench. Это бесплатно.
Обновление:
Из одного ответа, защищающего полиморфизм
"Простыми словами, полиморфизм - это способность одного типа, A, появляться как и использоваться как другой тип, B. В строго типизированных языков, это обычно означает, что тип А каким-то образом вытекает из типа B или типа A, интерфейс, который представляет тип B."
Из википедии, которая защищает наследование
Наследование также иногда называется обобщение, поскольку есть-aотношения представляют собой иерархию между классами объектов.
и
Наследование поэтому имеет другое вид, двойной, называемый полиморфизм, который описывает многие фрагменты кода контролируется совместным управлением код.
поэтому Base = new Derived()
показывает 'is' (наследование). И последствием этого является полиморфизм.
Так что я сомневаюсь, что правильно?