- class Person
- {
- private String name;
- private String age;
- public person()//无参数的构造函数
- {
- }
- public person(String name,String age)//有参数的构造函数
- {
- this.name=name;
- this.age=age;
- }
- }
- class Student extends Person
- {
- private String name;
- private String age;
- Student (String name,String age)
- {
- //super();
- this.name=name;
- this.age=age;
- }
- }
复制代码 一般情况,我们自己不设计一个构造函数的话,java会给我们默认一个无参数的构造函数。
但是当我们需要有参数的构造函数的时候,我们就需要自己定义。你上面的第二个就是有参数的。
而Java规定了当类中有了自定义的构造函数时,就不会给默认空参数的构造函数了。这个时候,如果你还需要空参数的构造函数的话,就必须自己手动再创建一个空参数的构造函数了。如果用不到,就不要创建了。
另外空参数的构造函数还有另个作用,如上面的代码:
学生Student类继承了Person类,那么在Student类中 Student (String name,String age)构造函数的第一行会有一个默认的super(),Person类的空参数构造函数;如果Person类中没有空参数构造函数的话,则Student类中 Student (String name,String age)构造函数的第一行就没有默认的super(),这时候,必须写一个有参数的super语句:super(name,age);
不知道我解释清楚了没有。
|