| Беларусь, рогачёв |
Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 7:
Наследование во Flash MX
Пример изменения работы иерархии
Вот совсем простой пример изменения работы иерархии классов. Мы создаем два класса (один - наследник другого). И заводим в базовом классе функцию, которая выводит в консоль все поля объекта. Затем, испробовав, как эта функция работает, заменяем ее другой. И снова смотрим, каков результат ее вызова из объекта базового и производного классов. Вот код, который реализует эти простые идеи.
_global.Base = function(a, b){
this.a = a;
this.b = b;
}
_global.Base.prototype.printAll = function(){
for (var name in this){
trace("this." + name + " = " + this[name]);
}
}
_global.Derived = function(a, b, c, d){
super(a, b);
this.c = c;
this.d = d;
}
_global.Derived.prototype = new Base();
b = new Base(10, 20);
d = new Derived(15, 25, 35, 45);
trace("================ b ===============");
b.printAll();
trace("==================================");
trace("================ d ===============");
d.printAll();
trace("==================================");
_global.Base.prototype.printAll = function(){
trace("Function is obsolete!");
}
trace("================ b ===============");
b.printAll();
trace("==================================");
trace("================ d ===============");
d.printAll();
trace("==================================");На выходе получаем:
================ b =============== this.printAll = [type Function] this.b = 20 this.a = 10 ================================== ================ d =============== this.printAll = [type Function] this.d = 45 this.c = 35 this.b = 25 this.a = 15 ================================== ================ b =============== Function is obsolete! ================================== ================ d =============== Function is obsolete! ==================================
Функция действительно заменилась - как в базовом классе, так и в производном. В следующем подпараграфе мы приведем уже более близкие к практике примеры использования этой методики.