Flutter

Dart基础语法<九> 类(下)

2021-01-03  本文已影响0人  果汁味Studio

本节主要记录一下Dart中关于类的使用

可调用的类

如果 Dart 类实现了 call() 函数则可以当做方法来调用。

class Callable {
  void call(int a, int b) {
    print(a + b);
  }
}

void main() {
  Callable callable = Callable();
  callable(10, 15);
}

运行结果为25,直接执行了call()方法

混合Mixins
class A {
  void a() => print("Aa");

  void b() => print("Ab");

}

class B {
  void a() => print("Ba");

  void b() => print("Bb");
}

class C with A, B {
  void c() => print("C");
}

class D with B, A {
  void d() => print("D");
}

void main() {
  C c = C();
  D d = D();
  c.a();
  d.a();
  c.b();
  d.b();
  c.c();
  d.d();
}
class A {
  void f() => print("A");
}

class B {
  void f() => print("B");
}

class C {
  void f() => print("C");
}

class R1 extends C with A, B {}

class R2 extends C with B, A {}

class R3 extends C with B, A {
  @override
  f() {
    super.f();
  }
}

void main() {
  R1 r1 = R1();
  R2 r2 = R2();
  R3 r3 = R3();
  r1.f();
  r2.f();
  r3.f();
}

运行结果为B A A
注:对比R2 R3类, f重写方法调用的super,实际调用并非父类C的方法(和想像的不一样)。

abstract class A {
  void a();
}

abstract class B {
  void b();
}

abstract class C extends A implements B {
  @override
  void b() => print("B");
}

abstract class D with A, B {}
上一篇 下一篇

猜你喜欢

热点阅读