1.抽象类
2.多态
3.接口
//抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口
//1.通过abstract关键字定义
//2.抽象类不能实例化,只有其子类可以
//3.如果把抽象类当做接口实现的话必须实现抽象类里面定义的所有属性和方法
//extends抽象类 和 implements区别
//1.如果要复用抽象类里面的方法,并要用抽象方法约束子类的话,我们用extends集成
//2.如果只是把抽象类当做标准的话,我们就用implements实现抽象类
//要求其子类必须有个eat方法
//主要用于约束子类
abstract class Animal{
//抽象方法,不去实现就好
eat();
otherEat(){
print("非抽象方法");
}
}
class Dog extends Animal{
@override
eat() {
print("eat");
}
}
main(List<String> args) {
// var p = new Dog();
// p.eat();
// //子类的实例,赋值给父类使用 - -
// Animal p1 = new Dog();
// p1.eat();
var sql = new MySql("url");
sql.add("1234");
}
//多态
//允许将子类类型的指针赋值给父类类型的指针,同一函数调用会有不同的执行效果.(听不懂)
//多态就是父类定义一个方法不去实现,让继承他的子类去实现,每个子类有不同的表现
//上面的抽象类就是个多态
//接口
//一般用抽象类去写
//定义一个DB库 支持mysql mssql mongodb
abstract class DB{//当做接口 就是约定
var url = "";
add(data){
print(data);
}
// edit();
// delete();
}
//implements 实现接口所有属性 和 方法
class MySql implements DB{
@override
String url;
MySql(this.url);
@override
add(data) {
print("$data???");
// TODO: implement add
}
}
网友评论