抽象类的使用原则:
抽象类应拥有尽可能多的子类共同代码!子类的共同行为,应尽量移动到抽象的父类中去。
抽象类中的数据能少则少。子类的状态数据不应当存放在抽象的父类中。不然,一方面会增大系统开销,另一方面也会对日后的改变带来不必要的限制。
该实现方法需要用到的第三方工具类与方法:
com.mimswright.utils.AbstractEnforcer
com.mimswright.utils.strictIs()
com.mimswright.utils.AbstractError
下载地址:http://mimswright.com/blog/?p=46
抽象类与抽象方法的实现原理:
通过第三方工具类AbstractEnforcer判断当前生成的对象或被调用的方法是否确实是抽象类的类型或方法,如果是则抛出AbstractError异常对象。
抽象类示例代码:
package org.kingda.book.basicoop.abstractclassandinterface
{
import com.mimswright.utils.AbstractEnforcer;
public class AbstractFoo
{
//抽象类的构造函数
public function AbstractFoo() {
AbstractEnforcer.enforceConstructor(this, AbstractFoo);
trace ("ok");
}
//抽象方法
public function hello():void {
AbstractEnforcer.enforceMethod();
trace ("hello()");
}
}
}