![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Здравствуйте.
![]() У Колина Мука написано: Переменная экземпляра, объявленная с использованием модификатора доступа protected может быть доступна ... или для кода потомков этого класса (мы ещё не рассматривали наследование...). Считается ли, что если я определяю подкласс — наследованием? Подкласс в данном случае является потомком? Основной класс: //Определяю пакет: package src { import flash.display.MovieClip; //Определяю класс: public class MainClass extends MovieClip { //Определяю метод-конструктор: public function MainClass() { //Определяю объект (создание объекта): var lowerClass:LowerClass = new LowerClass('Главный (основной) класс.'); } } } //Определяю пакет: package src { //Определяю класс: public class LowerClass { //Имя класса, который вызывает этот класс: protected var nameClass:String = ''; //Определяю метод-конструктор: public function LowerClass(argument) { nameClass = argument; } } } ![]() |
|
|||||
|
Цитата:
Наследование действительно интереснее, но перед ним нужно еще хорошо почитать про классы. Пока забудьте про protected. Это вам пригодится когда дойдете до главы с наследованием. Пока пусть будут только private и public
__________________
adobe AS3 manual |
|
|||||
|
На словах - да, но то что вы определили не подкласс. И это не наследование.
__________________
adobe AS3 manual |
|
|||||
|
.
|
MainClass — это основной? Он находится на 8 уровне наследования. Сложно назвать его основным.
MainClass -> MovieClip -> Sprite -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
То, что Вы делаете в конструкторе MainClass, называется Композиция (другой термин — агрегирование). То есть экземпляр одного класса создает экземпляр другого класса, который будет "помогать" агрегатору в выполнении каких-то его задач. Почти всегда агрегирование представлено в классе документа, в котором обычно создаются разные объекты разных классов, визуальные и не визуальные, и связываются в единую систему: композиция.
Наследование и композиция — два главных вида отношений, "является/расширяет" и "содержит/использует". При наследовании отдельного экземпляра "другого" класса не создается. Наследник фактически сам является экземпляром этого класса. Например, Яблоко является Фруктом, а не содержит в себе экземпляр Фрукта. Это означает, что у Яблока есть абсолютно все свойства класса Фрукт, плюс "расширяющие" Фрукт свойства, характерные только для Яблока, и поэтому не содержащиеся в классе Фрукт. При этом класс Фрукт может наследовать скажем класс Пища, и содержать специфические свойства, характерные не для любой Пищи, а только для фруктов. Фрукт "расширяет" (extends) Пищу, добавляя к его набору свойств свои специфические. Таким образом увеличение количества свойств в наборе "уточняет" (конкретизирует) сущность объекта. Про верхний класс при этом говорят, что он более абстрактен, а наследник более конкретен. — Маша, принеси мне с кухни еды. — Чего конкретно? — Ну, какой-нибудь фрукт. — Яблоко? Банан? Мандаринку?
__________________
Reality.getBounds(this); |
|
|||||
|
.
|
Агрегирование и композиция немного разные вещи. Композиция это частный случай агрегации. Выглядит так, будто бы я говорю: "вы делаете квадрат (другой термин — прямоугольник, параллелограмм, четырехугольник, многоугольник)".
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|