发文时间:2021年03月06日 01:58:36 编辑:Aaron 标签:记录Dart语言的学习历程 602
Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。
继承 (extends) 抽象类 (abstract) 实现 ( implements) 混合 mixin(with) 三者可同时存在,但是有先后顺序 extends -> mixin (with) -> implements 以思疼死 - 》 mi信(weisi) -》 int te mensi
关于 mixin机制? mixin 是Dart为了解决多重继承。 mixin的对象是类,不是继承也不是接口,他有自己的特性,可以with多个minix类。 mixin定义的类不能有构造方法,这样可以避免继承多个类而产生的父类构造方法冲突。
/* * 抽象类只能用abstract来继承 抽象类不能被实例化 (定义标准) * 子类抽象类 也可以实现抽象类接口 * 抽象类中的 extends 和 implement的区别 */ //定义一个抽象类 让他的子类必须包含eat的方法 (以此做到约束和规范的作用) abstract class Animal{ eat();//定义一个方法 里面没有方法体的就是一个抽象方法 继承的类就必须要用这个方法 wosh(); getInfo(){ //这个方法里有方法体 那就不是一个抽象方法 继承的类 可以不用有这个方法 print('我是父类中的一个方法 你继承的话 可有 可不有'); } } //定义一个类 来继承Animal class Dog extends Animal{ //继承了抽象类 就要有他里面的抽象方法 不然会报错 eat(){ print('小狗在吃骨头'); } wosh(){ } getDodInfo(){ print('是哈奇士!'); } } //在定义一个类去继承Animl class Cat extends Animal{ //继承了抽象类 就要有他里面的抽象方法 不然会报错 (也可以理解为多态) eat(){ print('小猫在吃鱼'); } wosh(){ } } main(){ //调用dog的类 Dog d=new Dog(); d.eat();//输出小狗在吃骨头 //通过dog调用自身的类 d.getDodInfo();//成功调用 //通过dog去调用 父类 d.getInfo();// 成功调用 print('-------------------分割线---------------------'); //限定当前类 只能调用父类的方法 不可以调用子类的方法 Animal a=new Dog(); a.getInfo();//成功调用父类的方法 //尝试调用子类的方法 // a.getDodInfo();//报错 因为只能调用父类的方法 }
//dart中extends 继承、 implements 可以实现引入多个接口、with混入 /* Dart中一个类实现多个接口: */ abstract class A{ String name; printA(); } abstract class B{ printB(); } class C implements A,B{ @override String name='1111'; @override printA() { print('printA'); } @override printB() { // TODO: implement printB print('测试b方法'); } } /* 可以调用两个抽象类,但是抽象类里有公共方法 那就不行 */ void main(){ C c=new C(); c.printA(); c.printB(); }
若无特殊说明,此文章为博主原创。 写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/42.html
Dart系列(十一)抽象类 abstract 多态 implements接口等
发文时间:2021年03月06日 01:58:36 编辑:Aaron 标签:记录Dart语言的学习历程 602
Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。
抽象类(abstract) 只要不是公有的方法( data(){}这种的) ,只要继承了他 那么他的子类里 都要有里面的方法,也是规范。 就好比里面有 a b c方法,那么继承的子类里 必须要有这三种方法,如若抽象类中的方法没有方法体 那可无这个方法。
父类写一个抽象方法,但是父类不去实现他,让子类去实现并且基于自身的需求去操作
多态的理解为 :父类定义的方法 父类不去实现,让他的子类去实现,基于业务需求而走,比较方便。
接口 :dart可以用普通类 或者抽象类 都可以作为接口被实现
implements 的引入操作
若无特殊说明,此文章为博主原创。
写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/42.html