以前没注意这个问题,刚才回答比人问题时候编程试验了下,发现了好多问题啊···(有点绕嘴)
大概是,我在父类中定义了一个有参的构造函数以后,子类中必须要在构造函数中调用super。不然编译器报错,如下- class Person
- {
- private String name;
-
- // Person(){ //注释掉,子类就会报错
- //
- // }
- public Person(String name)
- {
- this.name=name;
- }
- public String getName()
- {
- return name;
- }
- }
- class Student extends Person
- {
- String name;
- Student(String name){ // 要我必须
- this.name = name ;
- }
-
- }
复制代码 注释掉了person()后,子类就必须调用super,而在父类中显示定义了Person()以后,子类就可以随便定义构造函数了··。
子类自己定义自己的构造函数咋就不可以呢。为什么非要调用父类的super()呢?? |