接口:
package com.mq.jcyk.clas.service;import com.mq.jcyk.clas.action.ClasDto;public interface ClasService
{
public void createStudent(ClasDto dto);
}
实现:package com.mq.jcyk.clas.service.impl;import java.util.Map;import com.mq.jcyk.clas.dao.ClasDao;
import com.mq.jcyk.clas.service.ClasService;
import com.mq.jcyk.pojo.Student;
import com.mq.jcyk.util.BruceTool;public class ClasServiceImpl implements ClasService
{
private ClasDao clasDao; Map<String, Object> queryParams = null; public ClasDao getClasDao() {
return clasDao;
} public void setClasDao(ClasDao clasDao) {
this.clasDao = clasDao;
} @Override
public void createStudent(ClasDto dto) {
Student student = new Student();
student.setSid(BruceTool.getPrimaryKey());
student.setStudentName(dto.getStudent().getStudentName());
student.setAge(dto.getStudent().getStudentAge());
student.setGender(dto.getStudent().getStudentGender());
student.setAddress(dto.getStudent().getStudentAddress());
clasDao.createStudent(student); }}
报错:The type ClasServiceImpl must implement the inherited abstract method ClasService.createStudent(ClasDto)
这是为什么呢,接口定义的方法不是已经实现了吗?

解决方案 »

  1.   

    从你代码来看不可能出现这个问题
    有两种原因
    第一,你改成这样子,但是没有save文件,编译器还是报错
    第二,你贴出来的代码跟源码不一致,源码可能多个空格或者是什么拼写错误
      

  2.   

    @Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override
    而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override修改你的eclipse指定的编译器版本
    在选项里的java compiler中指定版本至少在5.0以上