5 super关键字

1 用super操作被隐藏的成员变量

  子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所拥有,同样子类一旦隐藏了继承的方法,那么子类创建的对象就不能调用被隐藏的方法,该方法的调用由关键字super负责。

  因此,如果在子类中想要使用被子类隐藏的成员变量或方法就需要使用关键字super。

  我的理解:

  使用super的目的:

  比喻:普通大学要300分的招生条件,重点大学想要在普通大学的基础上再加100分,但又不想把普通大学招生条件重新抄一遍。

   所以重点大学招生时,使用了super,避免了把普通大学招生条件写一遍,直接用super.普通大学方法,然后再新增+100分的语句;

 

  体现出来可能青涩难懂:既想重写,又不想再写一遍一样的部分。     既要隐藏方法,又要调用隐藏方法。听起来很奇怪,但道理还是个道理。

2.使用super调用父类的构造方法

  由于子类不继承父类的构造方法

  构造方法最大的特点就是:必须要跟类名相同,并且必须没有类型,而其他方法必须要有类型。如果子类B能够继承父类A的构造方法,那么子类B除了自己的构造方法,还多了一个没有类型的A的构造方法,

  按道理在B类里,除了B类自己的构造方法,其他的方法都必须拥有类型,而这个没有类型的A的构造方法,是错误的;所以子类不继承父类的构造方法。

因此,在子类(B类)中需要使用super来调用父类的构造方法,而且super必须是子类构造方法中的头一条语句,即如果在子类的构造方法中,没有明显地写出super关键字来调用父类的某个构造方法,那么默认的有:super(); 

自己的理解:super()代表调用父类A的空构造方法,如果要调用A类有参数的构造方法,则要在super的()里增加相应的参数,以调用A类的有参数的构造方法。 

 

  

posted @ 2022-07-02 21:34  馅饼丶  阅读(106)  评论(0)    收藏  举报