代码之家  ›  专栏  ›  技术社区  ›  Shubhamhackz

缺少getter和setter的具体实现

  •  1
  • Shubhamhackz  · 技术社区  · 6 年前
    class Shape {
      String color;
    
      void draw() {
        print('Draw Random Shape');
      }
    }
    
    class Rectangle implements Shape {
    
      @override
        void draw() {
          print('Draw Rectangle');
        }
    }
    

    现在问题是我收到警告说

    getter shape.color和setter的具体实现缺失 形状颜色

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

    1 回复  |  直到 6 年前
        1
  •  3
  •   Günter Zöchbauer    6 年前

    DART不从继承实现 implements Shape ,但只说明 Rectangle 符合的接口 Shape .

    你需要添加 String color; 矩形 满足 实现形状 .
    您可以通过添加字段或getter和setter来完成此操作。从类的接口角度来看,两者都是等价的。

    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只转发到一个没有附加代码的私有字段,则后者被认为是不好的样式。