父类这个模板内容比较复杂,因为子类就是依托于父类存在的。我们一下子全部掌握父类不是件容易的事,可以在学习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的使用注意点是每个小伙伴都必须掌握的,大家可以重点记忆。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)