【发布时间】:2012-10-05 06:28:11
【问题描述】:
我有以下两个课程:
public class Parent{
static internal const _name:String = "Parent";
public function get name():String{
return _name;
}
}
public class Child{
static internal const _name:String = "Child";
}
如果我创建一个 Child 类的实例并调用它的 name() getter,因为它将调用它从 Parent 继承的 name() 方法,所以它返回“Parent”。当然,我可以覆盖 name() 方法:
public class Child{
static internal const _name:String = "Child";
override public function get name():String{
return _name;
}
}
返回“孩子”。但是,必须从父级复制完全相同的方法代码似乎很愚蠢。有没有更简单的方法来做到这一点?
【问题讨论】:
-
您是否需要类似于 DisplaysObject 名称属性的实例名称?或者你不想有一个可用的类名?
-
这只是对实际问题的简化。在现实生活中,我的常量不称为名称,它是一个更复杂的数据结构,我想将其设为静态,因为它由类的所有实例共享
-
也许是我,但我看不到问题所在。如果你正在扩展一个类,你也继承了类的属性。如果要覆盖类属性之一的定义,则必须覆盖它。您可能需要重新考虑您的设计。
-
这不是一个大问题。我只是想知道是否有一种更简洁的方法,它不涉及将方法定义从父类复制和粘贴到子类,因为它是相同的。我发现使用原型对象(如我发布的自我回答中所述)可以解决问题并且效果很好。
标签: actionscript-3 flash apache-flex