标签:rgs 成员变量 div system col span .sh class void
一、super关键字
1.super的三个作用
1)调用父类的成员变量
示例代码:
1 public class A { 2 int a = 1;//父类成员变量a 3 } 4 5 public class B extends A { 6 int a = 2;//子类成员变量a 7 public void show() { 8 System.out.println(a);//2 9 System.out.println(super.a);//1 10 } 11 }
2)调用父类的构造方法
在子类中调用父类的构造器,子类所有构造方法无论重载多少个,第一行必须是super();
super()和this()只能存在一个,任选其一,只要满足子类中的构造方法调用一次父类的构造方法即可;
注意:所有的子类中都隐式包含super()在子类的构造器的第一行,不写并不代表没有!
示例代码:
1 public class A { 2 private int a; 3 //父类的有参数构造器 4 public A(int a) { 5 this.a = a; 6 } 7 } 8 9 public class B extends A { 10 private int b; 11 //子类的空参构造器 12 public B() { 13 //利用this()调用子类中的重载构造器 14 this(3);//此处没有this(3);则编译失败,因为子类没有调用父类的构造器 15 } 16 //子类的有参构造器 17 public B(int b) { 18 //利用super()调用父类的有参数构造器 19 super(3);//同this();子类中必须调用一次父类的构造方法 20 } 21 }
3)调用父类的成员方法
示例代码:
1 public class A { 2 public void show() { 3 System.out.println("父类的方法"); 4 } 5 } 6 7 public class B extends A { 8 public void show() { 9 System.out.println("子类的方法"); 10 //利用super关键字调用父类的方法 11 super.show(); 12 } 13 } 14 15 public class Test { 16 public static void main(String[] args) { 17 B b = new B(); 18 b.show();//子类的方法 父类的方法 19 } 20 }
标签:rgs 成员变量 div system col span .sh class void
原文地址:http://www.cnblogs.com/shak1ng/p/7988952.html