super关键字
提示:java类继承时,子类使用super关键字
当子类重写父类的方法后,子类的对象将无法访问父类被重写的方法。
1.super访问父类的成员变量
成员变量:super.成员变量
//第一个类
class one{
String name="花小猪";
public void one1(){
System.out.println("花小猪NO.1")
}
}
//第二个类
class two extends one{
String name="小猪佩奇";
public void Name(){
System.out.println("访问父类的成员变量:"+super.name)
}
}
2.super访问父类的成员方法
成员方法:super.成员方法(参数1,参数2,…)
//第一个类
class one{
String name="花小猪";
public void one1(){
System.out.println("花小猪NO.1")
}
}
//第二个类
class two extends one{
String name="小猪佩奇";
public void Name(){
System.out.println("访问父类的成员变量:"+super.name)
}
//重写父类的方法
public void one1(){
super.one1(); //访问父类的成员方法
}
}
3.super访问父类的构造方法
构造方法:super(参数1,参数2,…)
提示:super调用父类的构造方法必须位于子类的构造方法第一行,并且只能出现一次。
//第一个类
class one{
String name="花小猪";
public void one(){
System.out.println("花小猪NO.1")
}
}
//第二个类
class two extends one{
public void two (){
super.one(); //访问父类的构造方法
}
}
提示:看过我写的this关键字,你就会明白,这个跟this关键字调用的差不多,必须写在构造方法的第一行,且实例化时只出现一次。
重要提示:
1.子类的构造方法中一定要调用父类的构造方法!!!
2.子类的构造方法可使用super()关键字调用父类的构造方法,如果没有指定,在实例化时,会自动默认调用父类无参的构造方法。java类默认有无参的构造方法(如果父类有有参的构造方法,就会删除默认无参的构造方法,需要单独重新写无参的构造方法)。假如子类实例化时,而父类没有无参的构造方法就会报错(看上面重要提示第一条)。