extends、with、implements
dart没有interface概念,每个类都是隐式的接口;
类C只想拥有A、B的API,不需要对应的实现;
接口:
abstract class A{
String name;
printA();
}
abstract class B{
printB();
}
class C implements A,B {
@override
String name;
@override
printA() {
print('printA');
}
@override
printB() {
return null;
}
}
混入:
实现多继承功能;
1.作为mixins的类只能继承自Object,不能继承其他类
2.作为mixins的类不能有构造函数
3.一个类可以mixins多个mixins类
class A{
String name;
A(this.name)
printA() {
print('printA');
}
}
class B{
printB() {
print('printB');
}
}
class C{
printC() {
print('printC');
}
}
class D extends A with B,C{
D(String name) : super(name);
}
void main(){
var d=new D('张三');
d.printB();
d.printC();
}
继承:
flutter继承是单继承,利用混入可以实现多继承的功能;
1.子类使用extends关键词来继承父类
2.子类会继承父类里面可见的属性和方法 但是不会继承构造函数
3.子类能复写父类的方法 getter和setter
4.子类重写超类的方法,要用@override
5.子类调用超类的方法,要用super
6.子类可以继承父类的非私有变量
class A{
String name;
A(this.name)
printA() {
print('printA');
}
}
class B extends A{
B(String name) : super(name);
@override
void printA(){
print("B");
}
printB() {
print('printB');
}
}
网友评论