当前位置:网站首页>10Super详解
10Super详解
2022-08-11 10:19:00 【陆俞蓉】
super-this
(面试笔试可能会刷到这两个的相关题)
super注意点
- super是调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法(因为这两个都必须在第一行,同时出现就报错)
vs this:
代表的对象不同
this的代表对象是本身调用者这个对象
super代表父类对象的引用
前提不同
this在没有继承的情况也可以使用
super只能在继承条件下使用
构造方法
this调用本类的构造
super调用父类的构造
来点代码看看
分别调用子类、父类——this/super
注意看现在我们有三个name
运行Application之后
子类调用父类的方法
- 如果你想知道在Student类的test01中的print()调用的到底是子类还是父类的方法,可以按住ctrl点击print()就会跳到调用的相应方法
生成无参构造器
生成有参构造器
关于super/this的调用
run主函数之后
(有个小注意。如果显式定义了super(),这个super()语句也要放在前面,否则报错)
——即调用父类的构造器,必须要在子类的第一行
小注意
报错:this()必须是第一个参数
但是把this()放前面后依旧报错,提示super()必须是第一个参数
所以我们一般不显式定义super()
写了有参,无参构造就没了
我们在讲封装的时候也说了,一个类无论你怎么写,只要你写了有参构造,一般是先把无参构造写上
子类继承父类——所以在子类中也无法去写无参构造
当父类没有无参构造时,在子类中显式定义super()调用父类的有参:
当父类没有无参构造时,在子类中不写super(),默认隐式定义super()调用父类的无参:
注意
(1)私有的东西无法被继承(运用super也无法调用)
边栏推荐
猜你喜欢
随机推荐
NT 内核函数原型大全
[Building a 2D rasterized map using SLAM technology]
浮点型在内存中的存储
【Ackerman Motion Control】
VideoScribe卡死解决方案
保证金监控中心保证期货开户和交易记录
How to improve the efficiency of telecommuting during the current epidemic, sharing telecommuting tools
【阿克曼运动控制】
HStreamDB v0.9 发布:分区模型扩展,支持与外部系统集成
snapshot standby switch
Convolutional Neural Network Gradient Vanishing, The Concept of Gradient in Neural Networks
[Central Task Scheduling System - Communication Development]
MySQL数据库基础_常用数据类型_表设计
你觉得程序员是一个需要天赋的职业吗?
分割学习(loss and Evaluation)
【教程】区块链是数据库?那么区块链的数据存储在哪里?如何查看数据?FISCO-BCOS如何更换区块链的数据存储,由RocksDB更换为MySQL、MariaDB,联盟链区块链数据库,区块链数据库应用
Primavera P6 Professional 21.12 Login exception case sharing
【应用SLAM技术建立二维栅格化地图】
【无标题】(完美解决)uni-app 小程序下拉刷新后刷新图标无法正常恢复的问题
Word小技巧之图表实现自动编号和更新