Anlamaya çalıştım ama hala emin değilim. Temel sınıfta bir kurucu varsa, türetilen sınıflar her zaman onu arar? Bunu geçersiz kılabileceğini biliyorum (burada doğru terim değil, biliyorum - onların yapıcılarına kod eklemeyi kastediyorum) ama kurucunun temel sınıfta tanımlanmış olduğunu varsayalım, türetilmiş olanlar her zaman onu arar. Bu doğru mu?Yapıcılar kalıtım
6
A
cevap
6
Evet, parametresiz bir kurucu varsa, her zaman çağrılır. Birden fazla kurucu varsa, sen base
anahtar kelime ile arama hangisini tercih edebilirsiniz:
class Parent {
public Parent() {}
public Parent(int x) {}
}
class Child : Parent {
public Child(int x) : base(x) {
}
}
hiçbir parametresiz oluşturucu varsa, sen bunu yapmak zorla olacaktır:
class Parent {
public Parent(int x) {}
}
class Child : Parent {
// This will not compile without "base(x)"
public Child(int x) : base(x) {
}
}
2
Temel sınıfta yalnızca parametresiz bir kurucu varsa, alt sınıf kurucu her zaman önce onu arar. Diğer taraftan, temel sınıfta tanımlanmış başka kurucular varsa, alt sınıfın yapıcıyı çağırmak için bir seçeneği olacaktır.
İlgili konular
- 1. Ruby'de bir angajman yapıcılar
- 2. Java devralma - yapıcılar
- 3. Sanal yapıcılar nerede kullanılır?
- 4. yapıcılar için şablon argüman indirimi
- 5. C# 7 İfadeli Gömülü Yapıcılar
- 6. Kopyalama kurucusu silme, devralınan yapıcılar
- 7. Yakut Kalıtım
- 8. Kalıtım, "ebeveyn"
- 9. Yöntem kalıtım
- 10. Kalıtım 'CGPoint'
- 11. C# kalıtım
- 12. EditorTemplate kalıtım -
- 13. SQLMetal, sınıflar oluşturur, ancak parametresiz yapıcılar değil
- 14. Yapıcılar üreten bir JAXB Eklentisi var mı?
- 15. Kotlin'de uzatma yapıcılar oluşturmak mümkün mü?
- 16. Sınıf özniteliklerinde kalıtım (python)
- 17. C++ Çoklu Kalıtım Sorusu
- 18. __proto__ ve Javascript'te kalıtım
- 19. İç sınıflar Kotlin'de kalıtım
- 20. Bir kamyonun çiziminde kalıtım
- 21. Terapi örümceklerinde çoklu kalıtım
- 22. PHP Doktrin Kalıtım
- 23. PHP tekil ve kalıtım
- 24. WPF Stil Kalıtım
- 25. Xsd ve çoklu kalıtım
- 26. Çoklu Kalıtım Seviyesi
- 27. CSS - LESS sınıfı kalıtım
- 28. Kalıtım C# nasıl uygulanabilir?
- 29. Belirsiz sınıf kalıtım
- 30. hazırda Yerleştirilebilir Kalıtım
Anladığımdan emin değilim. İlk örnekte, Çocuk (int x): base (x) var, sanırım her ikisi de çağrılacak? – Miria
@Miria: Evet. * Bazı * temel yapıcıların çağrılmasının hiçbir yolu yoktur (örneğin, ikinci örnekte derleyici, base (x) 'i kaldırmanıza izin vermez); 'base' kullanarak sadece hangisini * seçeceğinize ve hangi parametrelere sahip olacağınıza izin verir. – Jon