Entity 是一个类
UserEntity 是Entity的子类
现在有
abstract class BaseForm{
 abstract setEntity(Entity entity)
}class UserForm extends BaseForm{
 setEntity(UserEntity entity){  //编译器指出问题是这里需要写Entity 类型,因为抽象类的方法就是Entity类型,我的疑虑也是这里
    this.entity = entity;
 }
}
我这样做,编译器说不行,问了几个同事,他们直觉上都觉得可以,但试出来都不行,请大家帮忙!!

解决方案 »

  1.   

    这样是不可以的UserForm 必须实现父类BaseForm的setEntity方法。
    子类实现父类虚方法的原则是参数,类型,返回值必须相同。
    虽然你实现setEntity(UserEntity entity)时声明的参数类型是Entity的子类也是不允许的,
    你可以声明参数是Entity类型,传递参数可以是UserEntity 类型
    setEntity(Entity entity){ 
        this.userEntity = entity;
     }
      

  2.   

    你这个肯定不行
    举个例子
    肉和草 都是饭的子类abstract class 人{
     abstract 吃(饭 fan)
    }
    class 男人 extends 人{
      吃(肉 rou){  
      //eat
     }
    }这样的话,难道男人就不能吃草了吗?
    楼主明白了吗?