Ho una domanda teorica/pratica su come funziona l'ereditarietà in C#.Informazioni su C# ed Eredità
Diciamo che devo modellare alcune macchine, quindi ho alcuni metodi comuni che tutte le macchine devono implementare e un pilota dovrebbe sapere. In parole in codice questo dovrebbe essere un interfaccia:
interface Automobile {
void speedup();
void break();
void steer();
//bla bla
}
Ora, tutti i tipi di auto dovrebbe avere alcune implementazioni tecniche comuni accanto alle azioni che un pilota in grado di eseguire su di loro, diciamo che il fuelLevel proprietà, a questo punto ancora non voglio sapere come una macchina accelera o si rompe, così mi ha scritto:
abstract class Car : Automobile {
int fuelLevel; // for example....
public abstract void speedup();
public abstract void break();
public abstract void steer();
}
Ora voglio modellare una Ferrari, quindi:
class Ferrari : Car {
public void speedup() { ... }
public void break() { ... }
public void steer() { ... }
}
Ora, in Java questo codice shou lavoro ld (cambiando qualche sintassi), ma in C# non lo faranno perché si dice:
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()'
Perché? Come dovrei risolvere questo problema?
Credo che questa è una delle differenze tra Java e C# ... Grazie mille. – IssamTP
@ amod0017 Fatto. Scusa per il ritardo ma sono piuttosto impegnato ad aspettare 7 minuti qui ... – IssamTP
@IssamTP in realtà secondo i tempi sul sito, mi ci sono voluti solo 3 minuti per rispondere :-) –