java super详解
super
super是一个关键字,super和this很类似,其语法是“super.”和“super()”,不能在静态方法中使用。在子类对象中,子类想访问父类的东西,可以使用“super.”的方式访问。
代码举例
在Person(父类)中创建一个属性name;
public class Person {
protected String name="小王同学";
}
在Student(子类)中创建一个属性和一个方法print方法
public class Student extends Person {
protected String name="小徐同学";
public void print(String name){
System.out.println(name);//输出的是方法里面的参数
System.out.println(this.name);//输出的是属性里面的name
System.out.println(super.name);//输出的是父类Person类里面的属性name
}
}
在Test(主类)中调用Student中的方法,并赋值
public class Test {
public static void main(String[] args) {
Student xingming = new Student();
xingming.print("小明同学");
}
}
得到结果如下:
如果需要使用super(); 则super();必须放在第一行
super注意点
- super 调用父类的构造方法,必须在构造方法的第一个。
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法。
与this对比:
this :本身调用者这个对象
super: 代表父类对象的应用
前提:
this:没有继承也可以使用
super: 只能在继承条件才可以使用
构造方法:
this (): 本类的构造
super(): 父类的构造
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)