は、次のコードをしてみましょう:タイプに応じてメソッドを呼び出す方法は一般的ですか?
public abstract class MySuperClass {
public abstract void update();
/* ... */
}
public class A extends MySuperClass {
@Override
public void update() { /* ... */ }
/* ... */
}
public class B extends MySuperClass {
@Override
public void update() { /* ... */ }
/* ... */
}
public class Ticket<T extends MySuperClass> {
private Class<T> c;
public Ticket(Class<T> c){ this.c = c; }
public Class<T> getClass() { return this.c; }
public void update() { /* HOW TO DO! */ }
/* ... */
}
public class Main {
public static void main(String[] args) {
Ticket<A> myTicket1 = new Ticket<A>(A.class);
Ticket<B> myTicket2 = new Ticket<B>(B.class);
myTicket1.update();
myTicket2.update();
}
}
どのように私は彼のタイプに応じてチケット(A
、B
)、またはアップグレードできますか?
メタル/ウッド/カーのアナロジーがもう嫌いでしたか? ;) – aioobe
いいえ、それは少し違いです – barroco
私は参照された他の質問を見て、aioobeが正しいです。どちらの場合も、継承の概念のいくつかが欠落しているようです。私が必要とするのは、 'MySuperClass'オブジェクトにアクセスすることだけです。それが 'A'か' B'かどうかは関係ありません。Javaは 'update()'の実装が使用するものです。 – unholysampler