Java中super是一个关键字,和this的比较类似。
1、特点:
(1)super 指向的是当前对象的父类型, 而 this 指向的是当前对象;
(2)虽然在大部分情况下 super 可以省略,但如果需要使用父类的方法或者属性,则必须使用 super;
1 public class Person { 2 3 public Person() { 4 System.out.println("我是一个人类"); 5 } 6 7 public static void person1() { 8 System.out.println("父类的方法"); 9 } 10 11 } 12 13 14 public class Xiaoming extends Person { 15 16 public Xiaoming() { 17 System.out.println("我是小明"); 18 super.person1(); // 调用父类的方法需要使用 super 19 } 20 21 public static void main(String[] args) { 22 Xiaoming xiaoming = new Xiaoming(); 23 } 24 25 }
(3)super的使用语法是 " super. " 或者 " super() " ;
(4)super在构造函数中只能是在首行,这点和 this 相同 , 当创建子类对象时, 需要先初始化父类;
1 public class Person { 2 3 public Person() { 4 System.out.println("我是一个人类"); 5 } 6 7 } 8 9 public class Xiaoming extends Person { 10 11 public Xiaoming() { 12 System.out.println("我是小明"); 13 } 14 15 public static void main(String[] args) { 16 Xiaoming xiaoming = new Xiaoming(); 17 } 18 19 } 20 21 输出: 22 我是一个人类 23 我是小明 24 25 Process finished with exit code 0
(5)如果在构造函数中没有显示地写出 super , 则会默认有一个 super() ;
(6)super 不能出现在静态方法中;
当我们在静态方法中使用super() 时,便会报错
1 public static void person1() { 2 super(); // 错误写法 3 System.out.println("父类的方法"); 4 } 5 6 }
标签:Xiaoming,Java,Person,System,关键字,super,public,out From: https://www.cnblogs.com/xiaoliuqq/p/17578556.html