A ve B'nin soyut olduğu ve C'nin somut bir uygulaması olan üç A, B ve C sınıfından oluşan bir kalıtım zincirim var. C# Birden fazla türetilmiş sınıf aşağı devralma zinciri için temel sınıf yöntemini geçersiz kılma
Ben aldı ve her zaman kullandığı asla ben denerseniz beton sınıfında Cgeçersiz kılmak ve sadece sınıf C geçersiz kılmak istiyoruz baz soyut sınıf a, Foo()
sanal yöntemine sahip varsayılan temel sınıf uygulaması, ancak her iki B & C'de geçersiz kılınırsa, sanal yöntemin yalnızca B.Foo()
uygulamasını kullanır.
'Geçersiz kılma' dışında B.Foo() hakkında ek bir şey bildirmek zorunda mıyım?
abstract class A {
protected virtual string Foo() {
return "A";
}
}
abstract class B : A {
protected override string Foo() {
return "B";
}
}
class C : B {
protected override string Foo() {
return "C";
}
}
Eğer basitleştirilmiş test denediniz yeni olarak B'de yöntem sınıflarınızın sürümü? –
Foo nasıl arıyorsun() C sınıfı mı? Numunenizi kullanarak çoğaltmayı denedim ve yapamadım. – Jason
Diğer sorunlardan dolayı aynı sorun sorununu yaşadım. Bunlar düzeltildikten ve yeniden oluşturuldum hata giderildi. – Danielson