不晓得错误在哪,大家帮忙找找。
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;
} 这段应该是覆盖了抽象方法的吧,为上面不能编译?
----------------解决方案--------------------------------------------------------
因为你在接口中定义的是抽象接口,而在实现它的时候你用的是Void的接收,从而导致编译不通过!
----------------解决方案--------------------------------------------------------
回复 2楼 筱晓绾
那要怎么解决? ----------------解决方案--------------------------------------------------------
在你接口的方法中加个参数啦! 你们发现你接口中的方法没有实现吗?
程序代码:
//声明给员工加薪的方法
public abstract void addSalary(int n);
public abstract void addSalary(int n);
----------------解决方案--------------------------------------------------------
听大家说,接口中的方法就是抽象方法,没必要再定义为抽象方法,所以建议lz将接口中的abstract 去掉试试!
----------------解决方案--------------------------------------------------------
将接口中的abstract去掉试了的
但是还是一样的错误
不过去掉后应该就不是抽象的方法了
但是还是一样的提示说 并且未覆盖 IEmployee 中的抽象方法
不晓得怎么回事
----------------解决方案--------------------------------------------------------
回复 4楼 jackieli2074
谢谢了,在接口中的抽象方法中加了参数这样就可以了。
----------------解决方案--------------------------------------------------------
回复 5楼 筱晓绾
5楼说的对接口中的方法就是抽象方法
难怪我吧abstract去掉后还是一样的说未覆盖抽象方法呢。
谢谢了
问题已经得到解决
----------------解决方案--------------------------------------------------------