私はクラスの階層を持っています:
class A{}
class B: A {}
class C:B {}
クラスAにメソッドを実装することは可能ですか?派生クラスBおよびCなどに継承され、そのメソッドはクラス型の値を返す必要がありますか?
A val = A.method(); (val is A)
B val = B.method(); (val is B)
C val = C.method(); (val is C)
そして、このメソッドの呼び出しでジェネリックを使用したくありません。つまり、
C val = C.method<C>();
皆さん、すみません、1 つ詳しく説明します。このメソッドは静的でなければなりません。
メソッド istelf でジェネリックを使用したくないのは、メソッドが返す必要がある型を強制するのに対し、メソッドはそのクラスの型を返す必要があるためです。
class A
{
Method<T>()
{
T result;
return result;
}
}
そのようなメソッドがあれば、戻り値の型を変更できます:
D result = A.Method<D>();
しかし、型 A の値を返すようにしたかったのです。