Под наследованием понимается возможность доступа представителей дочернего класса (подкласса) к данным и методам родительского класса (сверхкласса, синоним: суперкласс).
В языках программирование наследования значит, что поведение и данные, связанные с дочерним классом, всегда является расширением (то есть большим множественным числом) свойств, связанных с родительскими классами. Подкласс имеет все свойства родительского класса и, кроме того, дополнительные свойства. С другой стороны, поскольку дочерний класс является более специализированной (или ограниченной) формой родительского класса, он также, в определенном содержании, будет сужением родительского класса. Это диалектическое противоречие между наследованием как расширением и наследованием как сужением является источником большой силы, свойственной данной технике, и в то же время вызывает некоторую путаницу.
Наследование всегда транзитивно, так что класс может наследовать черты сверхклассов, которые отстоят от него на несколько уровней. Например, если Собака является подкласом класса Млекопитающее, а Млекопитающее является подкласом класса Животное, то класс Собака наследует свойству и классу Млекопитающее, и классу Животное.
Усложняющим обстоятельством в нашем интуитивном описании наследования является тот факт, что подклассы могут переопределить поведение, унаследованное от родительского класса. Да, если сверхкласс и подкласс должны тот же метод рисовать, то дочерний класс заменит унаследованную родительскую функцию своей функцией. Однако, в некоторых языках (С++) остается возможность даже в этом случае вызывать родительскую функцию особенным чином. На практике метод суперкласса вызывается к или после дополнительных действий. Метод подкласса уточняет или дополняет поведение суперкласса.
Дочерний класс может унаследовать структуру и поведение родительских классов
Согласно Бучу, наследование - это такое отношение между классами, когда один класс повторяет структуру и поведение другого класса {одиночное наследование) или других (множественное наследование) классов.
|