C#で継承がどのように機能するかに関する理論的/懐疑的な質問があります。C#と継承について
私はいくつかの自動車をモデル化しなければならないとしましょう、私はすべての自動車が実装しなければならないいくつかの一般的な方法があり、パイロットは知っておく必要があります。コードワードでは、これはインタフェースでなければなりません:
interface Automobile {
void speedup();
void break();
void steer();
//bla bla
}
さて、車のすべての種類は、私はこの時点では、のは、プロパティfuelLevelを言わせて、パイロットが彼らの上に実行できるアクションの横にあるいくつかの共通の技術的な実装を持っている必要がありますまだ車がスピードアップしたり壊れる方法を知りたくありませんので、私は書いているでしょう:
abstract class Car : Automobile {
int fuelLevel; // for example....
public abstract void speedup();
public abstract void break();
public abstract void steer();
}
今、私は、フェラーリをモデル化する:
今class Ferrari : Car {
public void speedup() { ... }
public void break() { ... }
public void steer() { ... }
}
、Javaでこれはコードシュウいくつかの構文を変更していますが、C#では以下のようになります:
Error 1 'Ferrari' does not implement inherited abstract member 'Car.speedup()'
Error 1 'Ferrari' does not implement inherited abstract member 'Car.break()'
Error 1 'Ferrari' does not implement inherited abstract member 'Car.steer()'
なぜですか?この問題をどのように解決すればよいですか?あなたが設定されている、それ以外
class Ferrari : Car
{
public override void speedup() { }
public override void break() { }
public override void steer() { }
}
からFerrari
クラスはメソッドが派生しているにもかかわらず、あなたのインタフェースを満たす:
を通して私は、これは、JavaとC#との違いの一つだと思います...ありがとうございました。 – IssamTP
@ amod0017完了。遅刻して申し訳ありませんが、私はここで7分待つのがかなり忙しいです... – IssamTP
@IssamTPは実際にサイトの時代に応じて、それは私に答えるのに3分しかかかりませんでした:-) –