当前位置:网站首页>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也无法调用)
边栏推荐
猜你喜欢

Revelations!The former Huawei microservice expert wrote 500 pages of practical notes on the landing architecture, which has been open sourced

数据库的索引和其底层数据结构

【Mysql系列】03_系统设计

【中央任务调度系统—通信开发】

OAK-FFC Series Product Getting Started Guide

华为WLAN技术:AC/AP 实验

Typora and basic Markdown syntax

验证拦截器的执行流程
![[UE] 入坑](/img/18/a329706541e45eb0db4bf3f7f99973.png)
[UE] 入坑

Primavera Unifier custom report creation and print sharing
随机推荐
Database Basics
mySQL事务及其特性分析
训练一个神经网络要多久,神经网络训练时间过长
爬虫封装成api
打印时间的各种格式
卷积神经网络梯度消失,神经网络中梯度的概念
NT 内核函数原型大全
爆料!前华为微服务专家纯手打500页落地架构实战笔记,已开源
Simple implementation of a high-performance clone of Redis using .NET (seven-end)
Primavera P6 Professional 21.12 Login exception case sharing
运动健康服务场景事件订阅,让应用推送“更懂用户”
使用树莓派和OAK相机部署机器人视觉模型
数据库事务
Convolutional Neural Network System,Convolutional Neural Network Graduation Thesis
Validate the execution flow of the interceptor
【Ackerman Motion Control】
数据中台方案分析和发展方向
Have you encountered this kind of error? flink-sql writes to clickhouse
27岁了,目前从事软件测试,听些老一辈的人说测试前途是IT里最差的,是这样吗?
期货开户最低的是交易所手续费不加佣金