关于super的几点疑问
老师,我的问题是:1、super可以调用父类构造方法,为什么不是写成:super.Animal(name,month);。而是写成super(name,month);
2、super调用父类方法,得写在子类构造方法的方法体内第一行,那为什么不能在普通的子类方法里,使用super调用父类方法?
3、使用super(name,month)调用父类带参构造方法,这我理解。但是,super(name,month)是写在方法体里的,在子类构造方法还没有追溯自己的父类构造方法前,怎么能进入方法体内读取其中的代码呢?
11
收起
正在回答
3回答
同学你好,在java的继承类关系中,子类的构造方法,如果没有写super();编译时会自动添加super(),如果在构造方法中写了super(),但是没有放在构造方法中的第一行,程序会编译不通过,强制执行程序会报错。所以在子类的构造方法中没有写super();,他会默认给你加,如果你写了,就必须放到构造方法的第一行!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星