抽象親クラスからメソッドを宣言するために、次のスタイルのいずれかを他のスタイルよりも使用することの長所/短所は何ですか。
オプション1:
親クラス:
protected Object retrieve(String id, Object model){
return null;
}
子クラス:
@Override
public String retrieve(Object model) {
if (model instanceof Car)
// ... somehow get id ...
return getInfo(id, (Car)model);
return null;
}
また...
オプション2:
親クラス:
protected abstract Object retrieve(String id, Object model);
子クラス:
public String retrieve(String id, Object model) {
if (model instanceof Car)
return getInfo(id, (Car)model);
return null;
}