ПОНЯТНО О Visual Basic NET (том 3)


Наследование


Кроме инкапсуляции у классов есть еще две замечательные черты: наследование и полиморфизм. Они могут быть важны в тех проектах, где имеются не один-два класса, а несколько. Понятие о наследовании я сначала дам на уровне аналогии.

Аналогия. Вообразим, что мы создали простенький класс Автомобиль, наделив его всего лишь двигателем, рулем и 4 колесами. И никаких подробностей. Полюбовавшись работой получившейся самоходной тележки, мы решили развивать проект дальше и создать еще три класса, более богатых и подробных: Амфибия, Грузовик и Автобус. У каждого из новых классов, как и у Автомобиля, есть двигатель, руль и 4 колеса, но вдобавок к ним и много подробностей, например, у Амфибии гребной винт, у Грузовика – кузов, у Автобуса – пассажирский салон.

Как создавать код каждого из этих трех классов? В нашем случае можно было бы просто скопировать в каждый из них весь код Автомобиля, добавив затем для каждого класса свои переменные, процедуры и функции. Но есть более удобный и «правильный» способ – это наследование. Мы просто объявляем, что новый класс Грузовик является наследником класса Автомобиль. При этом Грузовик неявно (невидимо) приобретает весь код своего родителя – Автомобиля. Тем самым, ничего не записав в код Грузовика, мы уже можем пользоваться им как Автомобилем. А чтобы снабдить Грузовик дополнительными чертами, мы пишем ему новые процедуры и функции. Аналогично поступаем с Амфибией и Автобусом.

Самое интересное то, что если мы впоследствии изменяем что-то в коде родителя (Автомобиль), то это изменение тут же сказывается на наследниках. Например, если мы в Автомобиле заменили двигатель внутреннего сгорания на электрический, то эта замена немедленно произойдет и в Амфибии, и в Грузовике, и в Автобусе. Это очень ценное и удобное качество. При отсутствии наследования нам пришлось бы делать замену двигателя в каждом классе.

У детей могут быть свои дети. Так, у Грузовика могут быть наследники Самосвал, Пикап и др. Все они наследуют у папаши-Грузовика кузов, а у дедушки-Автомобиля – двигатель, руль и 4 колеса. В общем, гены передаются самым отдаленным потомкам.




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