内容简介:在Flutter中,有如下三种关系:这三种关系可以同时存在,但是有前后顺序:extends -> mixins -> implements
在Flutter中,有如下三种关系:
- 继承(关键字 extends)
- 混入 mixins (关键字 with)
- 接口实现(关键字 implements)
这三种关系可以同时存在,但是有前后顺序:
extends -> mixins -> implements
extens在前,mixins在中间,implements最后,接下来看具体的例子。
1. 继承(extends)
Flutter中的继承和 Java 中的继承是一样的:
@override super
Flutter中的继承也有和Java不一样的地方:
- Flutter中的子类可以访问父类中的所有变量和方法,因为Flutter中没有公有、私有的区别
讲完特性,看下面的代码加深理解:
class Television { void turnOn() { _illuminateDisplay(); } void _illuminateDisplay(){ } } class SmartTelevision extends Television { void turnOn() { super.turnOn(); _bootNetworkInterface(); } void _bootNetworkInterface(){ } } 复制代码
2.混合 mixins (with)
在Flutter 中:
- 混合的对象是类
- 可以混合多个
mixins 具体的特性,可以查看我之前写得文章:Flutter mixins 探究
看具体代码:
class Television { void turnOn() { _illuminateDisplay(); } void _illuminateDisplay(){ } } class Update{ void updateApp(){ } } class Charge{ void chargeVip(){ } } class SmartTelevision extends Television with Update,Charge { void turnOn() { super.turnOn(); _bootNetworkInterface(); updateApp(); chargeVip(); } void _bootNetworkInterface(){ } } 复制代码
3.接口实现(implements)
Flutter是没有interface的,但是Flutter中的每个类都是一个隐式的接口,这个接口包含类里的所有成员变量,以及定义的方法。
如果有一个类 A,你想让类B拥有A的API,但又不想拥有A里的实现,那么你就应该把A当做接口,类B implements 类A.
所以在Flutter中:
@override @override
看如下的代码:
class Television { void turnOn() { _illuminateDisplay(); } void _illuminateDisplay(){ } } class Carton { String cartonName = "carton"; void playCarton(){ } } class Movie{ void playMovie(){ } } class Update{ void updateApp(){ } } class Charge{ void chargeVip(){ } } class SmartTelevision extends Television with Update,Charge implements Carton,Movie { @override String cartonName="SmartTelevision carton"; void turnOn() { super.turnOn(); _bootNetworkInterface(); updateApp(); chargeVip(); } void _bootNetworkInterface(){ } @override void playCarton() { // TODO: implement playCarton } @override void playMovie() { // TODO: implement playMovie } } 复制代码
以上所述就是小编给大家介绍的《Flutter语法(1):extends 、 implements 、 with的用法与区别》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- ArangoDB查询语言(AQL) 基本语法&用法
- Python爬虫利器三之Xpath语法与lxml库的用法
- Swift语法快速入门(一)之 Swift基础语法
- 在ES6中使用扩展语法有什么好处?它与rest语法有什么不同?
- AWK 的用法
- AWK基础用法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Game Engine Architecture, Second Edition
Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95
A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!