C#에서 상속이 어떻게 작동하는지에 대한 이론적 인/도덕적 인 질문이 있습니다.C# 및 상속 정보
일부 자동차를 모델해야한다고 가정 해 보겠습니다. 따라서 모든 자동차가 구현해야하는 몇 가지 일반적인 방법이 있으며 조종사는 알아야합니다.
interface Automobile {
void speedup();
void break();
void steer();
//bla bla
}
이제 자동차의 모든 종류의이 속성 fuelLevel 말을하자, 조종사가 그들을 수행 할 수있는 작업 옆에 몇 가지 일반적인 기술 구현을해야한다,이 점 I에서 : 코드 즉 이것은 인터페이스해야 여전히 차가 속도 또는 분해 방법을 알고 싶지 않아, 그래서 내가 쓴 것 :
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() { ... }
}
이제 자바이에 코드 슈 (구문을 바꾼다)하지만, 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
클래스는 방법이 도출된다하더라도, 당신의 인터페이스를 만족 :
을 통해 나는이 자바와 C#의 차이점 중 하나입니다 생각합니다 ... 정말 감사합니다. – IssamTP
@ amod0017 완료. 늦어서 미안하지만 여기에 7 분 정도 기다리는 것이 바쁩니다 ... – IssamTP
@IssamTP는 실제로 사이트에있는 시간에 따라 대답하는데 3 분 밖에 걸리지 않습니다 :-) –