解决方案 »
- 用HttpUrlConnection的时候,可否设置host?
- JAVA中==跟equals的问题
- 请问大家在JAVA中怎么样声明标签数组???
- replaceFirst("\","\\");的问题
- 各位进来看看关于将程序打包成jar文件的问题!!!!!!!!!!!!!
- java 中a=a++ 的问题
- 关于this的简单的问题!!!!!!!!!
- 如何将获取的格林威治时间转换为本地时区的时间?急……
- 菜鸟求救!(exception in thread "main" java.lang.NoClassDefFoundError)
- How to Resize the container with many component? and the component will vary according with the size of container?
- 菜鸟初学JAVA,求教JAVA EE 工程师成长之路
- 小弟悉心求教!!~~~~~
里面放入构造时的参数,如父类不含有无参构造函数,则子类也不能有无参构造函数,如果父类有多个构造函数,那么子类只实现一个构造函数即可,可以不用全部都实现。
Child extend Parent在实例化Child的时候,会先去实例化Parent(嵌套的一层层上溯)。Child c = new Child();一瞬间做的事情:
实例化是在构造函数中完成的,那么,调用Child的构造函数时候,必须先拿到Parent的对象也就是调用Parent的构造函数。回到你的题目,Parent没有默认构造函数,Child也只有一个带参构造函数。
Child c = new Child(p);
要实例化c必须先实例化Parent
但是,Parent没有默认构造函数,只能用带参构造函数实例化它。
但你的子类代码中没有显式去调用Parent的那个构造函数,Parent就无法完成初始化。何时子类必须显式调用父类构造函数:
1 父类没有默认构造函数(这时候子类必须无条件显式写一个任意的构造函数包括默认构造函数,第一句就是super(...))2 父类有默认构造函数,但子类的构造函数不想jvm调用父类默认的那个构造函数, 就要用spuer(...)(如果父类还有其他构造函数)其他场景,都是可写可不写。但是一旦写了super(...),super的参数怎么给必须与父类的构造函数相符。