super代表父类的引用,用于访问父类的属性、方法、构造器。
语法为
super.属性
super.方法
可以访问父类的属性和方法,但只能是公共的。
父类:
package com.edu.super_; public class A { public int n1 = 100; protected int n2 = 200; int n3 = 300; private int n4 = 400; public void testing100() { } protected void testing200() { } void testing300() { } private void testing400() { } }
子类:
package com.edu.super_; public class B extends A{ public void hi(){ //super访问父类的属性,但不能是私有的属性 System.out.println(super.n1+" "+super.n2+" "+super.n3); //也可以访问父类的方法,但不能是私有的 super.testing100(); super.testing200(); super.testing300(); } }
案例:
父类
package com.edu.super_; public class A { public void Cal(){ System.out.println("A类的计算方法"); } }
子类
package com.edu.super_; public class B extends A{ public void sum(){ System.out.println("B类的计算方法"); //调用父类的cal方法 Cal();//寻找顺序为先找本类,如果没有,则找父类。不限于直接父类,父类没有就找爷爷类。如果找到了,但是不能访问,就报错。如果没有找到,就提示方法不存在。 //方法二:等价于方法一,this表示当前 this.Cal(); //方法三:直接查找父类 super.Cal(); } }
测试
package com.edu.super_; public class Super01 { public static void main(String[] args) { B b = new B(); b.sum(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)