缺少 Getter 和 Setter 的具体实现

Missing concrete implementation of Getter and Setter

class Shape {
  String color;

  void draw() {
    print('Draw Random Shape');
  }
}

class Rectangle implements Shape {

  @override
    void draw() {
      print('Draw Rectangle');
    }
}

现在的问题是我收到一条警告说

Missing concrete implementation of getter Shape.color and setter Shape.color

我知道 dart 中的每个实例变量都有自己的 getter 和 setter implicitly.But 在接口的情况下如何解决这个 issue.I 也尝试过查看 Whosebug 上的一些类似问题,但它们没有帮助。

Dart 没有从 implements Shape 继承实现,而只是声明 Rectangle 符合 Shape 的接口。

需要在Rectangle上加上String color;才能满足implements Shape.
您可以通过添加字段或 getter 和 setter 来完成此操作。从 class' 界面的角度来看,两者是等价的。

class Rectangle implements Shape {
  String color;

  @override
    void draw() {
      print('Draw Rectangle');
    }
}

class Rectangle implements Shape {
  String _color;

  String get color => _color;
  set color(String value) => _color = value;

  @override
    void draw() {
      print('Draw Rectangle');
    }
}

如果 getter 和 setter 仅转发到私有字段而没有附加代码,则后者被认为是不良风格。

或者您可能只想 extends,不需要 implements

你可以把你的代码改成这样吗?

import 'package:meta/meta.dart';


abstract class Shape {
  String color;

  Shape({
    @required this.color 
  });

  void draw() {
    print('Draw Random Shape');
  }
}

class Rectangle extends Shape {
  Rectangle() : super(
    color: "#ff00ff"
  );

  @override
    void draw() {
      print('Draw Rectangle');
    }
}

希望能帮到你