| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:不晓得错误在哪,大家帮忙找找。
只看楼主 加入收藏
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:7 
不晓得错误在哪,大家帮忙找找。
public interface IEmployee{
   //设置员工加薪基准值常量
   public static final double prize=1000.00;
  //声明给员工加薪的方法
   public abstract void addSalary();
}
上面定义的是接口IEmployee

———————————————————————————————————
class Employee implements IEmployee{
   private String name;      //姓名属性
   private double salary;    //雇员薪水
   private String hireDay;   //雇员入职时间

   //含有参数的构造方法
   public Employee(String name,double salary,String hireDay){
     this.name=name;
     this.salary=salary;
     this.hireDay=hireDay;
}
   //用于获取雇员信息的方法
   public String getName(){
     return name;
}
   public void getInfo(){
     System.out.println("I'm Employee");
}
   public double getsalary(){
     return salary;
}
   public String gethireDay(){
     return hireDay;
}
   //定义接口中实现抽象方法
   public void addSalary(int n){
      salary+=prize*n;
}
}
public class UseIEmployee{
   public static void main(String ages[]){
      Employee e1=new Employee("张三",3000.00,"2005/05/20");
       e1.addSalary(1);
       System.out.println("name:"+e1.getName());
       e1.getInfo();
       System.out.println("salary:"+e1.getsalary());
       System.out.println("hireDay:"+e1.gethireDay()+"\n");
      Employee e2=new Employee("李四",5000.00,"2006/06/10");
       e2.addSalary(5);
       System.out.println("name:"+e2.getName());
       e2.getInfo();
       System.out.println("salary:"+e2.getsalary());
       System.out.println("hireDay:"+e2.gethireDay()+"\n");
}
}
接口类的实现UserIEmployee.java
但是运行结果
UseIEmployee.java:1: Employee 不是抽象的,并且未覆盖 IEmployee 中的抽象方法 addS
alary()
class Employee implements IEmployee{
^
1 错误
大家帮忙看看,Employee里
   public void addSalary(int n){
      salary+=prize*n;
} 这段应该是覆盖了抽象方法的吧,为上面不能编译?
2010-11-02 10:00
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
收藏
得分:5 
因为你在接口中定义的是抽象接口,而在实现它的时候你用的是Void的接收,从而导致编译不通过!
2010-11-02 10:05
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
回复 2楼 筱晓绾
那要怎么解决?
2010-11-02 10:14
jackieli2074
Rank: 6Rank: 6
来 自:上海
等 级:侠之大者
威 望:1
帖 子:183
专家分:494
注 册:2010-8-3
收藏
得分:5 
在你接口的方法中加个参数啦!  你们发现你接口中的方法没有实现吗?
//声明给员工加薪的方法
   public abstract void addSalary(int n);

2010-11-02 10:25
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
收藏
得分:0 
听大家说,接口中的方法就是抽象方法,没必要再定义为抽象方法,所以建议lz将接口中的abstract 去掉试试!
2010-11-02 10:27
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
将接口中的abstract去掉试了的
  但是还是一样的错误
不过去掉后应该就不是抽象的方法了
  但是还是一样的提示说 并且未覆盖 IEmployee 中的抽象方法
不晓得怎么回事
2010-11-02 10:39
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
回复 4楼 jackieli2074
谢谢了,在接口中的抽象方法中加了参数

这样就可以了。

 
2010-11-02 10:42
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
回复 5楼 筱晓绾
5楼说的对
接口中的方法就是抽象方法
难怪我吧abstract去掉后还是一样的说未覆盖抽象方法呢。
谢谢了
 问题已经得到解决
2010-11-02 10:44
快速回复:不晓得错误在哪,大家帮忙找找。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved