Цитата:
Сообщение от KidsKilla
=> АС1 не ООП =))) отличная логика.
|
Так прочитайте вторую часть моего поста, где я просил код. Был показан пример с приватным методом, т.е. метод инкапсулирован в класс (хоть и криво, менее кривым решением было бы использование call и apply и проблем с областями видимости не было бы). Но я хочу увидеть пример, реализовывающий сразу все принципе. Такой пример я сделал на AS3:

Код:
package {
public class MyClass implements IMyClass {
public function MyClass() {
super();
}
public var angle:Number = 0;
public function getRotation():Number {
this.calculateValue();
return this.angle/Math.PI*180;
}
private function calculateValue():void {
this.angle = 2*Math.PI*Math.random();
}
}
}

Код:
package {
public class AnotherMyClass extends MyClass {
public function AnotherMyClass() {
super();
}
public override function getRotation():Number {
var rotation:Number = super.getRotation();
return rotation/2;
}
}
}

Код:
package {
public interface IMyClass {
function getRotation():Number;
}
}
Итак, три класса, MyClass, AnotherMyClass и интерфейс IMyClass. Инкапсулирован метод calculateValue, класс AnotherMyClass наследуется от MyClass, переопределяет метод и использует метод супер-класса, и все это сверху нафаршировано полиморфизмом (сигнатуры методов совпадают, поведение разное) в виде интерфейса IMyClass.
Я прошу привести реализацию этих двух классов на AS1, с учетом и реализацией уровней доступа к свойствам и переменных.
Я согласен на формулировку «AS1 — псевдо-ООП язык», но никак не на «AS1 — ООП-язык». То, что на встроенном уровне есть какие-то классы и простое наличие объектов не делает язык по настоящему объекто-ориентированным.