Построение класса потомка Derived
Создадим теперь класс Derived - потомка класса Found. В простейшем случае объявление класса может выглядеть так: Public class Derived:Found { } Тело класса Derived пусто, но это вовсе не значит, что объекты этого класса не имеют полей и методов: они наследуют все поля и методы (кроме конструктора) класса Found и поэтому могут делать все, что могут делать объекты родительского класса. Можно даже не создавать собственных конструкторов класса. В этом случае автоматически добавляется конструктор по умолчанию - конструктор без аргументов, который будет вызывать конструктор без аргументов родительского класса. Заметьте, такой конструктор у родителя должен быть, иначе возникнет ошибка. Но в нашем случае такой конструктор предусмотрительно создан. Как видите, несмотря на то, что тело класса пусто, можно создать объект и вызывать многочисленные его методы, наследованные от родителя. На рисунке показаны результаты работы метода Job для объектов классов Found и Derived, созданных по умолчанию. Результаты совпадают. Если потомок ничего не делает, то его объекты ведут себя так же, как и объекты родительского класса. Каждый объект потомка "является" объектом родительского класса. Потомки, которые только наследуют свойства и поведение родителя, не интересны, от них мало проку. Потомок должен идти дальше родителя - вводить новые свойства, новое поведение, изменять старые методы работы. Давайте этим и займемся на примере класса Derived.
|