Одним словом, полиморфизм .
При Child
наследовании Parent
дочерний объект приобретает характеристики родительского объекта.Если вы думаете об этом с генетической точки зрения, это может иметь больше смысла.
1) Почему вызывается конструктор базового класса, когда я создаю экземпляры объектов с помощью конструктора ChildClass?без явного указания базового ключевого слова.Есть ли способ избежать вызова конструктора базового класса?
Нет способа обойти вызываемый конструктор базового класса (о котором я знаю).Смысл вызова конструктора базового класса заключается в том, чтобы создать экземпляр базового класса (передать параметры, инициализировать другие объекты, присвоить значения и т. Д.)
2) почему ParentClass ParentObj = new ChildClass ();возможный?и не наоборот.
Из-за полиморфизма Child
выглядит как Parent
и, следовательно, может создаваться как Parent
.Поскольку Parent не наследует Child, Parent не похож на Child и, следовательно, не может быть создан как Child
.
Для чего это стоит, использование Родителя и Ребенка имеет разные значения.Обычно при ссылке на наследование Parent
является базовым классом, где Child
будет производным или подтипом .