news 2026/4/23 15:46:30

Android学Dart学习笔记第十八节 类-继承

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android学Dart学习笔记第十八节 类-继承

继承

在dart中,和java一样,使用extends创建子类,使用super引用超类:

classTelevision{voidturnOn(){_illuminateDisplay();_activateIrSensor();}// ···}classSmartTelevisionextendsTelevision{voidturnOn(){super.turnOn();_bootNetworkInterface();_initializeMemory();_upgradeApps();}// ···}

Overriding members

子类可以覆盖实例方法(包括操作符)、getter和setter。可以使用@override注解表示有意覆盖成员

classTelevision{// ···setcontrast(int value){// ···}}classSmartTelevisionextendsTelevision{@overridesetcontrast(num value){// ···}// ···}

覆盖方法的声明必须在以下几个方面与它覆盖的方法匹配:
返回类型必须与被覆盖方法的返回类型相同(或为其子类型)。
形参类型必须与被覆盖方法的形参类型相同(或超类型)。在前面的例子中,智能电视的对比设置器将参数类型从int改为超类型num。
如果被覆盖的方法接受n个位置参数,那么覆盖的方法也必须接受n个位置参数。
泛型方法不能覆盖非泛型方法,非泛型方法也不能覆盖泛型方法。

noSuchMethod

当代码尝试使用不存在的方法或实例变量时,要检测或响应,你可以覆盖noSuchMethod():

classA{// Unless you override noSuchMethod, using a// non-existent member results in a NoSuchMethodError.@overridevoidnoSuchMethod(Invocation invocation){print('You tried to use a non-existent member: ''${invocation.memberName}',);}}

“Dart 允许你调用不存在的方法,但必须有安全网:要么你明确告诉编译器’我不知道这是什么类型’(用 dynamic),要么你准备好’备用方案’(自定义 noSuchMethod())。”
如果不这么做,编译检查都过不了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:50:03

加购,正在成为亚马逊算法中最容易被低估,却最致命的权重信号

在很多卖家的认知里,亚马逊运营的核心始终围绕着销量、排名和广告数据展开。但真正决定一个 ASIN 能否被平台持续“托住”、能否长期获得稳定流量的,并不只是成交结果,而是发生在成交之前的一个关键行为——加购。在当前的亚马逊算法体系中&a…

作者头像 李华
网站建设 2026/4/23 14:54:28

掌握Xcode项目自动化:pbxproj终极操作指南

掌握Xcode项目自动化:pbxproj终极操作指南 【免费下载链接】mod-pbxproj A python module to manipulate XCode projects 项目地址: https://gitcode.com/gh_mirrors/mo/mod-pbxproj pbxproj是一个强大的Python模块,专门用于读取、修改和保存Xcod…

作者头像 李华
网站建设 2026/4/23 14:54:24

10分钟搞定!AirShare跨平台文件共享工具终极部署指南

10分钟搞定!AirShare跨平台文件共享工具终极部署指南 【免费下载链接】transfer.sh Easy and fast file sharing from the command-line. 项目地址: https://gitcode.com/gh_mirrors/tr/transfer.sh 还在为不同设备间文件传输而烦恼?微信文件大小…

作者头像 李华
网站建设 2026/4/23 14:53:15

8款Blender必备插件:让3D创作效率翻倍的终极指南

作为一名Blender用户,你是否经常遇到这样的困扰:建模过程繁琐耗时,渲染效果不尽人意,动画制作复杂难懂?别担心,这正是Blender插件生态系统的价值所在!通过精心挑选的插件,你可以将创…

作者头像 李华
网站建设 2026/4/23 12:31:42

Easy Effects终极指南:从新手到专业音频调校师

Easy Effects终极指南:从新手到专业音频调校师 【免费下载链接】easyeffects Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications 项目地址: https://gitcode.com/gh_mirrors/ea/easyeffects 还在…

作者头像 李华