abstract class Person {
private String name;
private int age;
private String id;
private double mouth;
Person(String name,int age,String id,double mouth){
this.name=name;
this.age=age;
this.id=id;
this.mouth=mouth;
}
abstract void work();
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setId(String id){
this.id=id;
}
public String  getId(){
return id;
}
public void setMouth(double mouth){
this.mouth=mouth;
}
}
***************************************************************************
public class Manager extends Person{
Manager(String name,int age,String id,double mouth){
super(name,age,id,mouth);
}
public void work(){

}}
为什么子类继承父类,子类的构造函数就一定要带参数呢?

解决方案 »

  1.   

    楼主,你在子类构造方法中用了super(参数列表)方法;这个方法代表调用父类与之参数对应的构造方法,父类的构造方法有参数,所以子类构造方法必然有参数啊。如果在父类有无参构造方法,那么子类构造方法就可以这样写Manager() {
      super();
    }这样就不需要参数了,楼主该看看有关继承的一些基础知识
      

  2.   

    子类调用父类缺省构造函数,在抽象类(abstract)中是个特例.在一般类的继承中,缺省构造函数是不能调用的。
      

  3.   


    呵呵,是啊,如果你的父类没有参数而你的子类使用 super()硬是要写参数,你觉得是对的吗?
      

  4.   

    (子类继承了父类的构造方法?),你的父类构造方法有参数,子类不能调用父类默认的无参的super(),只能super(参数),那么子类也只好需要参数了。