我有一个模型抽象类,我想有一个抽象方法来设置模型实例的 id。我希望实现来定义他们想为 id 对象使用的对象。在以下示例中,getId() 工作正常,但我无法覆盖 setId() 方法,因为签名不同:setId(Object id) vs setId(Integer id)。我可以使用 < T > 或 < E > 或其他东西来完成此操作吗?我不熟悉如何使用这些。
abstract class Model{
abstract public void setId(Object id); <-- the problem
abstract public Object getId();
}
class SQLiteModel extends Model{
private Integer id;
@Override
public void setId(Integer id){ <-- the problem
this.id = id;
}
@Override
public Integer getId(){
return id;
}
}
那么多个泛型呢?
abstract class Model<T> {
abstract public void setId(T id);
abstract public T getId();
abstract public T getSomethingElse();
}
class SQLiteModel extends Model<Integer> {
private Integer id;
@Override
public void setId(Integer id) {
this.id = id;
}
@Override
public Integer getId() {
return id;
}
@Override
public String getSomethingElse(){
return "a string";
}
}