这个标题可能毫无意义,所以我会试着解释一下。
假设我在AS3中创建了一个类,任何具有一些基本变量的类,并且这些变量是通过该类构造函数设置的
所以..
var class = new basicClass(var1, var2);
现在假设我想创建一个继承basicClass的变量/方法等的新类,所以新类有类似
的类 public class betterClass extends basicClass
也许这也有一些通过它的构造函数设置的变量。
现在我感到困惑的是,如何通过创建betterClass来设置父类(basicClass)变量或通过它的构造函数做什么?
如果basicClass有一个期望值的构造函数,那么你如何设置它呢...
var class2 = new betterClass(var3, var4)
因为var3
和var4
用于betterClass的构造函数,所以我看不到如何设置basicClass
的实例。
我知道这是非常基本的东西,我以前从未需要使用继承。
答案 0 :(得分:2)
所以你有了BasicClass,它的构造函数可能如下所示:
public function BasicClass(var1:*, var2:*)
{
//do some stuff with var1 and var2
}
//you can extend some metods too
public function niceFunction():void
{
trace('Oh! Hello!');
}
现在你可以创建BetterClass:
public function BetterClass(var3:*, var4:*)
{
super(var3, var4);
//this calls constructor of BasicClass
}
override public function niceFunction():void
{
super.niceFunction();
trace('Nice to meet you.');
//This will trace: Oh! Hello! Nice to meet you.
}
答案 1 :(得分:1)
您可以使用'super'关键字'
从扩展类中调用父类的构造函数public betterClass(){
super(constuctorParam1,constructorParam2);// this calls the constructor of the class this class extended
}
这是更详细的信息 http://ntt.cc/2009/07/26/beginning-actionscript-3-super-this-setter-getter.html
答案 2 :(得分:0)
有时,您有不同的签名
package {
public class A {
protected var _a:String, _b:String;
public function A(a:String, b:String) {
_a = a;
_b = b;
}
}
}
package {
public class B extends A {
private var _c:Number;
public function B(c:Number) {
super('', '');
_c = c;
}
}
}
您必须了解不同的论点及其含义。另外,如果可能,请提供有用的默认值。
只是一些额外的输入。