【发布时间】:2020-11-08 20:20:55
【问题描述】:
我有设置:
public abstract class AbstractDbManager {
public abstract boolean createTable();
public abstract int insert(Stockable rm);
public abstract Stockable get(String key);
public abstract int save(Stockable rm);
}
public interface Stockable {
}
public class Stock implements Stockable{
}
public class StockDbManager extends AbstractDbManager{
@Override
public boolean createTable() {
return true;
}
@Override
public int insert(Stock stk) {
return 0;
}
@Override
public Stock get(String key) {
return null;
}
@Override
public int save(Stock stk) {
return 0;
}
}
为什么方法:int insert(Stock stk) 和 int save(Stock stk) in StockDbManager 不会覆盖方法:
abstract int insert(Stockable rm); 和 abstract int save(Stockable rm); 在 AbstractDbManager 尽管事实上每个 Stock 也是一个 Stockable ?
但是请注意,StockDbManager 中的 Stock get(String key) 方法成功地覆盖了 AbstractDbManager 中的 abstract Stockable get(String key); 方法。
【问题讨论】:
标签: java oop inheritance interface abstract-class