一.继承extends
-
dart
里的继承是单继承,即只能有一个父类。
- 子类会继承父类所有非私有属性和方法。
二.抽象类abstract
- 不能被实例化,只能被子类继承。
- 可以在抽象类中定义抽象方法和普通方法,抽象方法不能有实现,且子类必须重写该方法。
abstract class Example {
/// getter属性
int get calculate;
/// 抽象方法
void methodOne();
/// 普通方法
void methodTwo() {
print('methodTwo');
}
}
三.接口实现implements
- 当一个类被
implements
时,子类需要重写该类的所有属性和方法。
class AnotherExample implements Example {
@override
int get calculate => 1;
@override
void methodOne() {
print('methodOne');
}
@override
void methodTwo() {
print('methodTwo');
}
}
abstract class InterfaceOne {
void one();
}
class InterfaceTwo {
void two() {}
}
class Interface implements InterfaceOne, InterfaceTwo {
@override
void one() {}
@override
void two() {}
}
四.混合mixin
- 不能有构造函数。
- 一个类可以混合多个
mixin
类。
-
mixin
不能继承。
mixin Breathing {
void swim() => print('Breathing');
}
mixin Walking {
void walk() => print('Walking');
}
mixin Coding {
void code() => print('Hello world');
}
abstract class Human with Breathing {
}
class Developer extends Human with Walking, Coding {
}
void main() {
final developer = Developer();
developer..walk()..code()..swim();
}
mixin BallUtil in Widget {
double ballVolume(double radius) {
return 4 / 3 * 3.14 * pow(radius, 3);
}
}
class VolleyballPitch extends StatelessWidget with BallUtils {
// code...
}
网友评论