请问java中,super什么时候使用?
答案:3 悬赏:40 手机版
解决时间 2021-04-26 15:05
- 提问者网友:沉默的哀伤
- 2021-04-26 10:13
请问java中,super什么时候使用?
最佳答案
- 五星知识达人网友:孤老序
- 2021-04-26 11:33
在构造方法中第一条语句(必须在第一条)使用,以调用父类构造器:
public class Parent {
private String name;
public Parent(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
super("张三");
}
}在构造方法或方法中调用父类的属性及方法(父类private的属性或方法无法访问):
public class Parent {
private String name;
public Parent(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
super("张三");
super.setName("张三三");
}
}有问题请追问.
追问是不是说子类中有构造方法,那么他就要在方法体的第一句加上super(),追答对。追问那岂不是很麻烦追答其实在子类构造方法中默认第一条语句就是super(),只是你看不到。如果父类没有无参的构造方法,那么就需要自己使用super(指定参数)了。你所说的这个麻烦Java也是想得很周全的,呵呵。
public class Parent {
private String name;
public Parent() {
}
public Parent(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
// 如果父类没有无参构造方法,那么此处必须使用super(指定参数)
}
}
public class Parent {
private String name;
public Parent(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
super("张三");
}
}在构造方法或方法中调用父类的属性及方法(父类private的属性或方法无法访问):
public class Parent {
private String name;
public Parent(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
super("张三");
super.setName("张三三");
}
}有问题请追问.
追问是不是说子类中有构造方法,那么他就要在方法体的第一句加上super(),追答对。追问那岂不是很麻烦追答其实在子类构造方法中默认第一条语句就是super(),只是你看不到。如果父类没有无参的构造方法,那么就需要自己使用super(指定参数)了。你所说的这个麻烦Java也是想得很周全的,呵呵。
public class Parent {
private String name;
public Parent() {
}
public Parent(String name) {
this.name = name;
}
}
class Child extends Parent {
public Child() {
// 如果父类没有无参构造方法,那么此处必须使用super(指定参数)
}
}
全部回答
- 1楼网友:不如潦草
- 2021-04-26 13:40
调用父类的函数时使用
- 2楼网友:琴狂剑也妄
- 2021-04-26 12:39
不是的 super是调用父类的成员变量 或者构造器或者方法。子类扩展父类是继承 扩展方法是重写 。
我觉得您需要多看看javase中面向对象的知识
我觉得您需要多看看javase中面向对象的知识
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯