Java中super的使用

Java中除了this,还有一个关键字super,super指父类,在类的继承中有重要的作用。

1.使用super访问父类的属性和方法

子类自动继承父类的属性和方法(除private修饰),一般情况下,直接使用父类的属性和方法,也可使用this来指明本对象。但有时为了明确指明父类的属性和方法,使用关键字super。

如:父类Person中有age属性,子类使用age,this.age,super.age来访问age是一样的:

void testSuper(){
	int a;
	a=age;
	a=this.age;
	a=super.age;
}

 当然,使用super不能访问子类自己定义的属性和方法。

有时需要使用super来区别同名的属性和方法。使用super可以访问被子类隐藏的同名变量,或者当子类覆盖了父类的同名方法的同时,想调用父类的方法,使用super。如:

void sayHello(){
	super.sayHello();
	System.out.println("My School is"+school);
}

 

2.使用父类的构造函数

在严格意义上,构造函数不允许继承,但这并不意味着子类不能调用父类的构造方法。子类在构造方法中,可以使用super来调用父类的构造函数。

Student(String name,int age,String school){
	super(name,age);
	this.school=school;
}

 

使用时,super应放在第一句。

3.使用super的注意事项

在使用super时,super指的是调用“对象”本身,而不是指父类中看见的属性和方法。由于他指的是对象,所以不能在static的环境中使用,包括类变量(static field)和类方法(static method),static语句块。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Javasuper关键字用于访问父类的成员变量和方法。可以用super关键字调用父类的构造方法,也可以用它来调用父类的方法。 以下是super关键字的使用方法: 1. 访问父类的构造方法:可以使用super关键字来调用父类的构造方法。在子类的构造方法使用super关键字并传递参数来调用父类的构造方法。例如: ``` public class Parent { private String name; public Parent(String name) { this.name = name; } public String getName() { return name; } } public class Child extends Parent { private int age; public Child(String name, int age) { super(name); // 调用父类的构造方法 this.age = age; } public int getAge() { return age; } } ``` 2. 调用父类的方法:可以使用super关键字来调用父类的方法。在子类使用super关键字调用父类的方法,可以使用super关键字来引用父类的成员变量和方法。例如: ``` public class Parent { private String name; public Parent(String name) { this.name = name; } public void printName() { System.out.println("Parent's name: " + name); } } public class Child extends Parent { private String name; public Child(String name) { super("parent"); this.name = name; } public void printName() { super.printName(); // 调用父类的方法 System.out.println("Child's name: " + name); } } ``` 在上面的例子,子类的printName()方法调用了父类的printName()方法,并在其后添加了自己的代码。使用super关键字调用父类的方法可以避免方法重写时的死循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值