A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract class Employee
{
        private String name;
        private String id;
        private double pay;

        void Employee(String name,String id,double pay)
        {
                this.name=name;
                this.id=id;
                this.pay=pay;
        }

        public abstract void work();
}

class Manger extends Employee
{
        private int bonus;
        public void Manager(String name,String id,double pay,int bonus)
        {
                super(name,id,pay);
                this.bonus=bonus;
        }
        public void work()
        {
                System.out.println("manager work");
        }
}
class General extends Employee
{
        public void General(String name,String id,double pay)
        {
                super(name,id,pay);
        }
        public void work()
        {
                System.out.println("General work");
        }
}
class  AbstractTest
{
        public static void main(String[] args)
        {
                General g = new General("zhangsan","9959gy",15895.89);
                g.work();
        }
}
总是提示super语句位置不对,还有对象的参数列表不符合...请大家帮看下代码哪里有问题

4 个回复

倒序浏览
本帖最后由 龚龙 于 2012-3-29 21:17 编辑

哥们,构造函数是不带返回值类型的!...............!  


  public Employee(String name2, String id2, double pay2) {
                this.name=name;
                this.id=id;
                this.pay=pay;
                }


  public  Manger(String name,String id,double pay,int bonus)
        {
                super(name,id,pay);
                this.bonus=bonus;
        }
回复 使用道具 举报
abstract class Employee
{
        private String name;
        private String id;
        private double pay;

        //void Employee(String name,String id,double pay)
//无法将类 Employee中的构造器 Employee应用到给定类型;这里也得用构造函数
Employee(String name,String id,double pay)
        {
                this.name=name;
                this.id=id;
                this.pay=pay;
        }

        public abstract void work();
}

class Manger extends Employee
{
        private int bonus;
        //public void Manager(String name,String id,double pay,int bonus)

//对super的调用必须是构造器中的第一个语句
//所以你这要用构造函数
Manger(String name,String id,double pay,int bonus)

        {
                super(name,id,pay);
                this.bonus=bonus;
        }
        public void work()
        {
                System.out.println("manager work");
        }
}
class General extends Employee
{
      //  public void General(String name,String id,double pay)
General(String name,String id,double pay)// 这里也用构造函数

        {
                super(name,id,pay);
        }
        public void work()
        {
                System.out.println("General work");
        }
}
class  AbstractTest
{
        public static void main(String[] args)
        {
                General g = new General("zhangsan","9959gy",15895.89);
                g.work();
        }
}

回复 使用道具 举报
呵呵,谢谢,头昏了,这都没看到~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马