Java基础————SUPER关键字

一、概念

        调用父类的属性,一个类中如果有int x属性,如果其子类中也定义了int x 属性的话,在子类中调用父类的x属性,如果其子类中也定义了int x属性的话,在子类中调用父类的x属性时应用 super.x = 6,表示该x是引用的父类的属性,而要表示子类中的x属性的话,使用this.x.Java里在子类中用super调用父类构造函数时,调用函数必须放在子类的第一条语句的位置,如果想用super继承父类构造函数时,调用内函数必须放在子类的第一条语句的位置。

二、实例

1、调用父类的构造方法

   首先准备 一个显式的提供无参构造方法的父类,在实例化Animal对象的时候,其构造方法就会打印,输出动物!


而当实例化子类对象的时候,先调用父类的构造方法,在调用子类构造方法,即打印动物!\n 狗!


当父类显示的提供两个构造方法时候,一个无参构造方法,一个有参构造方法。


子类使用super关键字调用父类的带构造方法


这里子类可以利用super关键字调用父类的有参构造函数,输出:动物:小黄\n  狗:小黄;必须把super方法第一条语句中,否则会报错

如果去掉super关键字,实例化子类对象的时候,先调用父类的无参构造函数,在调用子类的有参构造函数,输出:动物!\n 狗:小黄。


2、调用父类属性

通过super调用父类的age属性,Dog类中也提供了age属性;



3、子类中调用父类的方法


4、当父类中没有无参构造时,子类想初始化该如何处理,首先,作为子类,无论如何都会调用父类的构造方法,默认情况下,会调用父类的无参的构造方法,但是,当父类没有无参构造的方法时(提供了有参构造方法,并且不显示提供无参构造方法),子类会抛出异常,因为它会尝试调用父类的无参构造函数,这个时候,必须通过super调用父类声明的,存在的有参构造函数




猜你喜欢

转载自blog.csdn.net/Flashfuture/article/details/80062079
今日推荐