Java中super关键字

super关键字:

(1)  使用super可以从子类中调用父类中的构造方法

(2)  从子类中调用父类中的普通方法,属性

1、使用super调用父类中的普通方法和属性

在Java中,会遇到子类中的成员变量或方法与父类中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了类的成员变量或方法如果想要使用类中的这个成员变量或方法,就需要用到super

class Country {
String name="xianfan";
void value() {
this.name = "China";
}
}


class City extends Country {
String name;
void value() {
this.name = "Hefei";
super.value();
System.out.println(this.name);
System.out.println(super.name);
}
public static void main(String[] args) {
City c=new City();
c.value();
}
}

2、使用super调用父类中的构造方法

使用super调用父类中的构造方法时需要注意:调用语句必须放在子类构造方法的首行。

class Person{
private String name;
private int age;
public Person(){
System.out.println("The new one");
}
public Person(String name,int age){
this();
this.name = name;
this.age = age;
}
public String getInfo(){
return "name:" + this.name + ",age:" + age;
}
}
class Student extends Person{
private String school;
public Student(String name,int age,String school){
super(name,age);
this.school = school;
}
public String getInfo(){
return super.getInfo() + ",shool:" + this.school;
}
}
public class StudentDemo{
public static void main(String[]args){
Student st = new Student("xy",23,"beijing");
System.out.println(st.getInfo());
}
}

例子解释:

(1) 属性没有用getter和setter封装好

(2) this() 调用本类中的构造方法

(3) super(name,age) 调用父类的构造方法

(4) super.getInfo() 调用父类中的普通方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值