本帖最后由 魏先勇 于 2013-8-15 18:46 编辑
当你再一个类中显式的定义了构造函数的时候,Java就不再给这个类提供默认的构造函数了。子类的构造函数如果没有显式写上super();那么默认在函数的第一行都会加上super();如果父类中没有定义空参数的构造函数,就必须显式用super关键字调用父类带参数的构造方法。或者通过this关键字调用本类的其他构造方法(这个构造方法中一定也使用super关键字调用了父类的构造方法)。附上一段代码:
- public class Student extends Person
- {
- public String name;
- public int age;
-
- Student(String name)
- {
- super(name);
- }
-
- Student(String name, int age)
- {
- this(name);
- this.age = age;
- }
- }
- class Person
- {
- public String name;
-
- Person(String name)
- {
- this.name = name;
- }
- }
复制代码 |