115 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 05 super关键字的使用(下)

115 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 05 super关键字的使用(下)

本文知识点:super关键字的使用(下)

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

super关键字的使用(下)

问题需求

之前,学习了满足继承的条件下,子类对象的实例化顺序
mark
即,要想产生子类的实例对象,会先去调用父类的对应的构造形式,先完成父类的构造。

那么,新的问题出来了,作为子类对象,在构造时,是否有权力选择调用什么形式的父类构造呢?
简单来说:就是,实例化子类对象的过程中,能否自行决定调用父类的哪个构造方法呢?
mark

代码演示——无参构造方法

添加子类带参构造:
mark

添加父类带参构造:
mark

实际上子类默认调用父类无参构造方法 (即使子类的构造方法含参数,父类也有对应参数的构造方法,但是默认情况下,子类还是调用父类的无参构造方法)
mark

如果一不留神把父类的无参构造方法注释了,或者没有显式提供父类无参构造方法,子类的构造方法就会在编译时直接报错的:
mark
mark

所以,无参构造方法很重要,无论是否需要无参构造方法,都建议在编写类的时候显式提供一个无参构造方法
mark

mark

那如何调用父类的含参构造方法呢?
使用super关键字即可调用父类的构造方法,既可以调用父类的无参构造方法,也可以调用父类的含参构造方法

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

super()即表示调用父类的可以被访问的构造方法。**
super关键字调用父类的无参构造方法
mark

super关键字调用父类的含参构造方法
mark

必须放在第一行
mark
mark

必须在子类构造方法中才能调用父类构造方法,在其他方法中调用不被允许
mark
mark

super关键字总结

mark
mark
mark

mark
mark
mark

原文地址:https://www.cnblogs.com/xlfcjx/p/13788056.html