Java 中的 super 关键字
2021/11/1 1:09:35
本文主要是介绍Java 中的 super 关键字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 使用 super 可以从子类中调用父类的构造方法、普通方法、访问父类属性。与 this 调用构造方法的要求一样,语句必须放在子类的构造方法的首行。
2. 访问属性、调用普通方法、调用构造方法 this 与 super 的区别
(1) 访问属性:this 访问本类中的属性,如果本类中没有此属性,则从父类中继续查找。super 是访问父类中的属性。
(2) 调用方法:this 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找。super 是访问父类中的方法。
(3) 调用构造:this 调用本类的构造函数,必须放在构造方法的首行。super 是调用父类的构造函数,必须放在子类构造方法的首行。
3. super 和 this 关键字是不能同时在构造方法中出现的,因为两者在调用构造方法时都必须要放在首行,所以会冲突。需要注意的是,无论子类怎样操作,最终都是要先调用父类的构造方法。
4. 例子
class Person { public String name; public int age; public Person(String name, int age) { this(name); //ok and must be first //Person(name); //error: cannot find symbol //this.Person(name); //error: cannot find symbol this.age = age; } public Person(String name) { this.name = name; } public Person() { //若是提供了构造方法,默认的就没有了,需要提供一个 this.name = "undefined"; this.age = -1; } public void printInfo() { System.out.println("name = " + name + " age = " + age); } } class Student extends Person { String school; public Student(String name, int age, String school) { super(name, age); this.school = school; } public void printInfo() { System.out.println("name = " + name + " age = " + age + " school = " + school); } } public class SuperTest { public static void main(String args[]) { Person p = new Person("XiaoLi", 27); p.printInfo(); ////error: incompatible types, required:Student, found:void. 在 new Student 位置加括号也不行! //Student t = new Student("DaLiang", 28, "University").printInfo(); Student t = new Student("DaLiang", 28, "University"); t.printInfo(); } } # java SuperTest name = XiaoLi age = 27 name = DaLiang age = 28 school = University
这篇关于Java 中的 super 关键字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求