父类这个模板内容比较复杂,因为子类就是依托于父类存在的。我们一下子全部掌握父类不是件容易的事,可以在学习super中体验父类的方法、属性等要点。需要说明的是,除了父类外,super还可以隐藏和覆盖变量。下面我们就这两方面的super 使用为大家带来展示,具体代码如下:
1.调用父类的方法public class Parent {
public String name;
public Parent(){
System.out.println("父类默认无参构造方法");
}
public void setName(String name){
this.name = name;
}
}
public class Son extends Parent {
public Son(){
super();//1、调用父类构造函数
System.out.println("子类默认无参构造方法");
}
public void printName(){
super.setName("Tom");//2、调用父类方法
System.out.println(super.name);//3、调用父类属性
}
public static void main(String[] args) {
Son son = new Son();
son.printName();//Tom
}
}
这个例子我们在子类中分别调用了父类的构造方法、普通方法以及成员属性。
2.调用隐藏变量和被覆盖的方法public class Demo{
public static void main(String[] args) {
Dog obj = new Dog();
obj.move();
}
}
class Animal{
private String desc = "Animals are human's good friends";
// 必须要声明一个 getter 方法
public String getDesc() { return desc; }
public void move(){
System.out.println("Animals can move");
}
}
class Dog extends Animal{
public void move(){
super.move(); // 调用父类的方法
System.out.println("Dogs can walk and run");
// 通过 getter 方法调用父类隐藏变量
System.out.println("Please remember: " + super.getDesc());
}
}
super注意点:
super调用父类的构造方法,必须在构造方法的第一个!
super必须只能出现在子类的方法或者构造方法中!
以上就是java中super在父类和变量中的使用,相信运行代码后小伙伴们已经有所体会。结尾super的使用注意点是每个小伙伴都必须掌握的,大家可以重点记忆。