5.5 super关键字

 

5.5 super关键字

  1. 参考书籍:Java面向对象程序设计(第二版)--耿祥义 张跃平编著

 

1使用super调用父类的构造方法

子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用,必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句

比如A类中

A(){      //不带参数的构造方法

}   

A(int a,int b){     //带两个参数的构造方法

this.a=a;

This.b=b;

}

子类B中

B(int a,int b,int c){

Super(int a,int b);   //调用父类的构造方法,即执行A(int a,int b)

}  //子类构造方法,super放在第一条

 

 

注意:

(1)如果在子类的构造方法中,没有明显写出super关键字来调用父类的某个构造方法,默认有:  Super();语句,即调用父类不带参数的构造方法。

 

  1. 如果类中定义了一个或者多个构造方法,那么java不提供默认的构造方法(不带参数的构造方法),为防止子类省略super时出错,应当在父类多定义一个不带参数的构造方法。

 

 

2 使用super操作被隐藏的成员变量和方法

比如 super.x;   //访问和调用子类隐藏的成员变量x

Super.a();   //访问和调用子类隐藏的方法a()

 

 

注意:

子类创建一个对象时

 

 

子类声明的和继承的成员变量-------分配内存(内存单元属于子类对象)

被隐藏的成员变量-------分配内存(内存单元不属于任何对象,必须要super调用)

方法也一样,不过super调用隐藏的方法时,该方法出现的成员变量是指被隐藏的成员变量

猜你喜欢

转载自blog.csdn.net/weixin_42717928/article/details/81082412