Dart语言学习第六章
一.类的继承
什么是类的继承呢,我们前面说了类是一个事物的抽象特性,但是一个类的特性可能很多类都有。我们举个例子来讲就是动物的种类,猫和布偶猫,暹罗猫,波斯猫,缅因猫的区别,我们接下来用代码简单的说明一下:
class cat {
String name() {
return '猫';
}
String kind() {
return '猫科动物';
}
int age() {
return 7;
}
String what() {
return '是鼠的天敌,世界各处都有驯养';
}
}
class blackcat extends cat {
String color() {
return 'black';
}
String weight() {
return '10kg';
}
}
我们写了一个类,cat。又写了一个类blackcat继承了cat:
main() {
cat cat1 = new cat();
blackcat cat2 = new blackcat();
print(cat1.age());
print(cat1.kind());
print(cat1.name());
print(cat2.age());
print(cat2.kind());
print(cat2.what());
print(cat2.color());
print(cat2.weight());
}
//7
//猫科动物
//猫
//7
//猫科动物
//是鼠的天敌,世界各处都有驯养
//black
//10kg
cat和blackcat的关系就是父类与子类的关系,blackcat作为新的类继承cat的所有方法,黑猫无论怎么变还是个猫,这就是类的继承。
二.抽象类
抽象类是一种特殊的类。不具备实际效果,只写好定义接口,具体实现由调用者完成。作用就如同一个模板,继承该抽象类的类具有该类的方法。
abstract class good{
void hello();
void yes();
void no();
}
我们先创建一个抽象类,之后我们再用一个类继承他
我们可以看到,继承good类的cat类有一个提示(划红线地方),我们根据提示操作,鼠标移到划红线的cat上,点快速修复:
class cat extends good{
String name() {
return '猫';
}
String kind() {
return '猫科动物';
}
int age() {
return 7;
}
String what() {
return '是鼠的天敌,世界各处都有驯养';
}
@override
void hello() {
// TODO: implement hello
}
@override
void no() {
// TODO: implement no
}
@override
void yes() {
// TODO: implement yes
}
}
void no() {
// TODO: implement no
}
@override
void yes() {
// TODO: implement yes
}
}
如果我们的类继承了抽象类,那么就会继承抽象类中的所有方法,我们只举了静态方法的例子,事实上其他方法均可以使用。