2011-08-27 5 views

ответ

7

При выводе из A, необходимо указать, что экземпляры B не только B, они A также. Это называется inheritance в ООП. Сила наследования заключается в том, чтобы абстрагировать общие свойства/поведение с общим классом, а затем выводить из него специализированные классы. Специализированные классы могут изменять существующую функциональность (называемую переопределением) или добавлять новые функции.

Однако наследование работает только в одном направлении, а не в обоих. Объекты класса A не могут рассматриваться как B, так как B может (и часто это делает!) Содержит больше функциональных возможностей, чем A. Или, другими словами, B более конкретный, а A - более общий.

Таким образом, вы можете сделать A a = new B(); но не B b = new A();

17

это просто из-за способа наследования; Женщина или Человек - это Человек и в конечном итоге добавляет что-то другое, как пол, к Человеку базового класса.

, если вы объявите:

Man m = new Person() 

, чем вы получили Человек без Пол.

другой способ работает, потому что каждый человек является также лицо ;-)

+3

+1 приятное и простое объяснение –

1

Поскольку B < A, так что не могу создать новый A, равный B

1

А является базой, вы получены B от A. A как основа для сборки, основанная на базе, вы можете строить новые этажи. Но используя базовую конструкцию пола.

Смежные вопросы