私が理解しているように、抽象としてマークされているメソッドは暗黙的に仮想です。理由:特定のオブジェクトのコンパイル時の型が抽象であると仮定します。オブジェクトの抽象メソッドの1つが呼び出されている場合、実行される実際のメソッドは、オブジェクトの実行時型で定義されているメソッドです。ではない?私が正しければ、抽象メソッドは仮想メソッドであるかのように動作します。
それにもかかわらず、私はC#メソッドを抽象と仮想の両方で同時にマークすることに成功しました。
public abstract virtual void crazy();
抽象メソッドは必ずしも仮想である必要はなく、抽象であることは実際には仮想であることと直交していることを意味していると思います。
何が間違っていますか?どうして抽象メソッドを仮想化できないのでしょうか?