Показать сообщение отдельно
Старый 29.02.2012, 17:34
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 45  
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от fljot Посмотреть сообщение
Зачем тогда переопределять? *вопрос ко всем любителям супер-ов*
Как зачем? Ну очевидно же: чтобы его использовать.
Код AS3:
public class A {		
	public function method():void {
		trace("I`m original method");
	}
}
Код AS3:
public class B extends A {		
	public function func1():void {
		this.method();
	}
}
Код AS3:
public class C extends B {		
	override public function method():void {
		trace("I`m overriden method");
	}
}
Код AS3:
var c:C = new C();
//мне необходимо вызвать старый метод, а выходит - наоборот
c.func1();//I`m overriden method
//мне необходимо вызвать новый метод, все работает как надо
c.method();//I`m overriden method
Не получается то чего я хочу добиться. Поэтому, мне в теле func1() нужно менять "this.method();" на "super.method();". Противники супер-ов, как по вашему мне добиться того, что я хочу, если в функции func1() НЕ писать super.method() ?
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 29.02.2012 в 17:41.