OOP AS1 В ДЕЙСТВИИ 3 in 1: инкапсуляция, наследование, полиморфизм
Следует заметить что НАСЛЕДОВАНИЕ в AS1 - более широкое понятие. Здесь - наследование на уровне экземпляр-класс, наследование свойств прототипов класса, надкласса, наследование свойств созданных внутри конструктора и пр... В этом плане AS1 более гибок... такое наследование позволяет экономить память, ресурсы компьютора.
Я покажу наследование - в "классическом" понимании, то есть как в AS3, Java, C#. Код:
*IA - in action, в действии

Код:
//Класс Rectangle - надкласс класса Square
function Rectangle(width,height){
this.test = "test";
var l2this=this;
function Private(){trace(l2this.test);}//приват метод// ИНКАПСУЛЯЦИЯ IA
this.callPrivate=function(){Private();}
this.width=width;
this.height=height;
this.ctest=function(){l2this.test="null";}
this.getArea=function(){return l2this.width*l2this.height;}
}
//наследование свойств созданных в конструкторе - НАФИГ
//Square.prototype = new Rectangle();
//для того что бы были видны свойства в прототипе надкласса - НАФИГ
//Square.prototype.__proto__= Rectangle.prototype;
//Класс Square - Подкласс класса Rectangle
function Square(size){
this.superClass = Rectangle;
//вызов этой функции обеспечивает истинный Полиморфизм :)
//Передача параметров в надкласс //аналог super
this.superClass(size,size);//вызывается каждый раз при создании экземпляра
this.size=size;
ASSetPropFlags(this,"width,height",7,null);//скрытие, защита непотребных свойств
//trace(this.width);//4, 5 //НАСЛЕДОВАНИЕ IA #1 //OK, свойства видны
}
//создание объектов с различной площадью
var sq=new Square(4); //ПОЛИМОРФИЗМ IA #1
var sq2=new Square(5);
//sq.test="0";trace(sq2.test);//test //ПОЛИМОРФИЗМ IA #2 :)
//метод изменяет свойство test экземпляра sq
//sq.ctest(); trace(sq.test);trace(sq2.test);//null test//все ОК. ПОЛИМОРФИЗМ IA #3
//sq.width=30;trace(sq.width);//4 - OK // не переопределяется //ЗАЩИТА РАБОТАЕТ
//trace(sq2.width);//5 //у экземпляра есть свойство надкласса //НАСЛЕДОВАНИЕ IA #2
//у экземпляров есть метод надкласса
//trace(sq.getArea());//16 //ПОЛИМОРФИЗМ IA #4 + НАСЛЕДОВАНИЕ IA #3
//trace(sq2.getArea());//25 //ПОЛИМОРФИЗМ IA #4 + НАСЛЕДОВАНИЕ IA #3
AS1 - истинный ООП (2 __etc). Можно говорить лишь
о качестве, а не о существовании.