黑马程序员技术交流社区

标题: 关于编译过程中出现构造器无法应用到给定类型中的问题 [打印本页]

作者: zhohao    时间: 2014-6-12 21:22
标题: 关于编译过程中出现构造器无法应用到给定类型中的问题
本帖最后由 zhohao 于 2014-6-18 11:37 编辑

abstract class Employee
{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id,double pay)
        {
                        this.name = name;
                        this.id = id;
                        this.pay = pay;

        }
        public abstract void work();
}
class pro extends Employee
{
        
        pro(String name,String id,double pay)
        {
                super(name,id,pay);
        }
        public void work()
        {
                System.out.println("pro work");
        }
}

class  EmployeeDemo
{
        public static void main(String[] args)
        {
                new pro().work();
        }
}

编译时出现无法将pro类中的构造器pro应用到给定类型的错误,是哪里出了问题?求教



作者: alive    时间: 2014-6-12 22:16
有构造函数但是没初始化,你的匿名对象没有传递参数
作者: 江夷    时间: 2014-6-12 22:53
abstract class Employee
{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id,double pay)
        {
              this.name = name;
              this.id = id;         
              this.pay = pay;                    

        }
               
        public abstract void work();
}
class pro extends Employee
{

               
               
        pro(String name,String id,double pay)
        {
                super(name,id,pay);
       
                }
        public void work()
        {
                System.out.println("pro work");
        }
}

class  EmployeeDemo
{
        public static void main(String[] args)
        {
             //new pro().work();//因为你pro对象中没有无参的构造函数,所以创建匿名对象时不能使用无参数的匿名对象进行创建,
                 new pro("zhangsan","m1009",100.5).work();//正确创建和调用方式,或者在pro类中添加空参的构造函数       
        }
}


作者: zhohao    时间: 2014-6-13 16:22
alive 发表于 2014-6-12 22:16
有构造函数但是没初始化,你的匿名对象没有传递参数

谢谢,这下知道怎么回事了,多谢了。
作者: zhohao    时间: 2014-6-13 16:33
江夷 发表于 2014-6-12 22:53
abstract class Employee
{
        private String name;

谢谢,这下知道怎么回事了。
作者: 王者之风西昆仑    时间: 2015-1-24 13:28
我也想知道怎么回事
作者: zhohao    时间: 2015-2-1 13:35
王者之风西昆仑 发表于 2015-1-24 13:28
我也想知道怎么回事

就是你的构造函数实例化需要传递参数,你构造的时候没有传递参数。
作者: 王者之风西昆仑    时间: 2015-4-17 11:17
zhohao 发表于 2015-2-1 13:35
就是你的构造函数实例化需要传递参数,你构造的时候没有传递参数。

知道了,多谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2