gpt4 book ai didi

dart - 访问 Dart 中的继承字段

转载 作者:行者123 更新时间:2023-12-01 00:16:17 25 4
gpt4 key购买 nike

abstract class Painter {

CanvasElement canvas;

Painter(this.canvas);

void draw();
}

class SpritePainter extends Painter{

SpritePainter(this.canvas);

void draw(){
window.console.log("Drawing");
window.console.log(canvas);
}

}

使用上面的代码,我的应用程序在尝试调用 new SpritePainter(query('#sprite-canvas')); 时失败,表示 this.canvas 是未知的 field 。我以为子类可以访问抽象父类中的 CanvasElement

更新:

我用以下方法解决了这个问题:

SpritePainter(CanvasElement canvas):super(canvas);

但后来我在 dart 教程上读到抽象类只能有工厂构造函数?

最佳答案

你必须像下面这样将你的参数转发给 super 构造函数:

abstract class Painter {
CanvasElement canvas;

Painter(this.canvas);

void draw();
}

class SpritePainter extends Painter{
SpritePainter(CanvasElement canvas) : super(canvas);

void draw(){
window.console.log("Drawing");
window.console.log(canvas);
}
}

关于dart - 访问 Dart 中的继承字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com