Java super关键字详解

一.super关键字作用

1:主要存在于子类方法中,用于指向子类对象中父类对象。

2:访问父类的属性

3:访问父类的函数

4:访问父类的构造函数

二. super注意的地方

thissuper很像,this指向的是当前对象的调用,super指向的是当前调用对象的父类。类加载完毕,创建对象,父类的构造方法会被调用(默认自动无参),然后执行子类相应构造创建了一个子类对象,该子类对象还包含了一个父类对象。该父类对象在子类对象内部。this super只能在有对象的前提下使用,不能在静态上下文使用。

三.super关键字的使用

1.子类的构造函数默认第一行会默认调用父类无参的构造函数,隐式语句

super();

[java]  view plain  copy
  1. Son(int y) {  
  2.         //super();隐式语句  
  3.         this.y = y + x;  
  4.         System.out.println("这是子类的有参构造");  
  5.     }  

2.子类显式调用父类构造函数

在子类构造函数第一行通过super关键字调用父类任何构造函数。如果显式调用父类构造函数,编译器自动添加的调用父类无参数的构造就消失。构造函数间的调用只能放在第一行,只能调用一次。super()this()不能同时存在构造函数第一行。

[java]  view plain  copy
  1. Son(int y) {  
  2.         super(y);// 子类显式调用父类构造函数  
  3.         this.y = y + x;  
  4.         System.out.println("这是子类的有参构造");  
  5.     }  
四.super思考

如果开发者自定义了一个类,没有显示的进行类的继承,那么该类中成员函数是否可以使用super关健健字?可以使用,继承了Object类,Object类是所有类的父类。

[java]  view plain  copy
  1. class Demo7 {  
  2.     public  void print(){  
  3.         System.out.println(super.toString());  
  4.     }  
  5.     public static void main(String[] args){  
  6.         new Demo7().print();  
  7.         System.out.println();  
  8.         }  
  9. }  

猜你喜欢

转载自blog.csdn.net/jisuanji198509/article/details/80493757