回 帖 发 新 帖 刷新版面

主题:一个小问题 请大虾回答

class B{
    String name;
    int age;
    public void getDetails(){
        System.out.println(name+":"+age) ;
    }
    public B(String name,int age){
        this.name=name;
        this.age=age;
    }
}
class A extends B{
    String depa;
    public void getDetails(){
        System.out.println(name+":"+age+":manager of the"+depa) ;
    }
    public A(String x,int y,String z){
        name=x;
        age=y;
        depa=z;
    }
}
class Test{
    public static void main(String args[]){
        B b=new B("zhangsan",23);
        A a=new A("lisi",21,"marketing");
        B c=new A("wangwu",30,"IT");
        a.getDetails();
        b.getDetails();
        c.getDetails();
    }
}

以上代码提示找不到符号,请大伙帮忙。

回复列表 (共2个回复)

沙发

因为你的基类没有默认构造函数,一般的来说系统会默认给派生类加上默认构造函数,然而你基类没有,那么需要你自己显示地在派生类构造函数中调用基类的构造函数,如下:
public A(String x,int y,String z){
        super(x, y);    //增加了这个东西
        name=x;
        age=y;
        depa=z;
    }

板凳

问题应该出在类A的构造方法
public A(String x,int y,String z)
{
        super(x,y);
         depa=z;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册