🏡个人主页 :@ 守夜人st
🚀系列专栏:java
…持续更新中敬请关注…
🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点
✈️推荐一款模拟面试,刷题,从基础走向大场面试👉 开启你的刷题之路吧
Java基础——this和super
this关键字
- this能出现在实例方法和构造方法中
- this的语法是:“this.”,“this()”
- this不能使用在静态方法中
- this.大部分情况下是可以省略的
- this.什么时候不可以省略?
在区分局部变量和实例变量的时候不能省略
public void setName(String name){
this.name = name;
}
this()只能出现在构造方法的第一行,通过当前构造方法调用其他构造方法,实现代码复用。
super关键字
- super能出现在实例方法和构造方法中
- super的语法是:“super.”,“super()”
- super不能使用在静态方法中
- super.大部分情况下是可以省略的
- super.什么时候不可以省略?
父类和子类有相同的属性或方法时,想通过子类访问“父类特征”时,super.不能省略。
super()只能出现在构造方法的第一行,通过当前构造方法调用其他构造方法,目的是创建子类对象的时候,先初始化父类型特征。
重要结论:
既没有this()又没有super()的话,默认会有一个super();
表示通过当前子类的构造方法调用父类的无参构造方法。
所以必须保证父类的无参构造方法是存在的!!!
this()和super()不能共存,它们都是只能出现在构造方法的第一行!!!
一个实例程序带你了解this和super
package com.shouyerenst.OOP;
public class SuperTest{
public static void main (String[] args){
new C();
}
}
class A{
public A(){
//这里默认有super();
System.out.println("1");
}
}
class B extends A{
public B() {
//这里默认有super();
System.out.println("2");
}
public B(String name){
//这里默认有super();
System.out.println("3");
}
}
class C extends B{
public C() {
this("zhangsan");
System.out.println("4");
}
public C(String name) {
this(name,20);
System.out.println("5");
}
public C(String name,int i) {
super(name);
System.out.println("6");
}
}
这里大家可以好好思考一下输出结果是什么
13654
总结
super的使用:
super.属性名 【访问父类的属性】
super.方法名 【访问父类的方法】
super(实参) 【调用父类的构造方法】
算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的
现在算法刷题平台还是蛮多的,给大家介绍一个我认为与大厂关联最深的平台——牛客网 跳转链接
感觉不错的话,动手点个赞吧!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/125490.html