java中super的应用

作者:落知秋 | 创建时间: 2023-06-09
他 可以用来区分子类和父类具有相同变量名的,可以用super来区分...
java中super的应用

操作方法

他 可以用来区分子类和父类具有相同变量名的,可以用super来区分          super也可以调用父类被重写的方法                     构造方法是不能够被继承的,如果想使用父类的构造方法来帮助我们完成一些事情                     我们可以通过super来调用相应的构造方法,每个构造方法上面其实都有一句super()

不写也有,简单来说,在构建子类对象的时候,子类会先调用父类的构造方法                                           如果父类中添加了有参构造器,但是也没有手动添加无参构造器                  那么子类的构造器就会报错,引用子类中的每一个构造器都会默认                  调用父类的无参构造器,除非你通过super关键字来进行显示的调用                  父类的相应的有参构造器;

super关键字在子类的构造器中调用相应的构造器,那么也必须写在第一行              this  和    super  能同时存在吗?                                      不能

2.  向上造型                       简单来说就难受使用  父类的引用指向子类的对象                             动物  animal   =  new 狗();狗是动物           Animal  a  =  new  Dog();           在使用向上造型时需要注意:     *****************                编译期和运行期

编译期看类型  Animal  a= new Cat();           在编译期这个a是动物,动物只能吃不会抓老鼠,所以a是不能够直接调用抓老鼠的 需要我们强行转换           运行期   看对象           Animal  cat=new Cat();           Dog  dog=(dog) cat;           上面代码只能够在编译期没有问题,因为编译期看类型dog看做了狗类型           可以调用看大门,但是运行期看对象,实际上这只狗看门的时候发现他不是一条真正的狗           而是一直披着狗皮的猫,所以他看大门的时候出错了。

*****************************     强制转换有风险,所以强制转换之前最好要判断一下     判断该引用指向的对象是否是转换之后的对象          如何判断?java给我们提供了一个instanceof  关键字,我们可以使用该关键字     来进行判断,查看引用所指向的对象是不是我们想转的类型,如果是 则返回true 不是则返回false。。

点击展开全文

更多推荐