Sprite'i genişletdiğimde her zaman super() öğesini çağırmıyorum.
Ama sorun yok not calling super()
neden?
Şimdiye kadar, herhangi bir sorunum yok ve sprite'ı genişleten kurucuda super() öğesini çağıran kodu görmedim.
TextField nasıl?
Ayrıca TextField hakkında da bir sorunum yok.
Super() ya da olmamalı mıyım?Sınıf sprite actionscript3'te uzatıldığında super() yapıcıyı çağırmam gerekmiyor mu?
cevap
sonra flaş çocuğunuzun yapıcı önce örtük çağrı super()
edecektir. Yani:
public class Parent {
public function Parent() {
trace("Parent");
}
}
public class Child extends Parent {
public function Child() {
trace("Child");
}
}
new Child();
// Parent
// Child
Yani çocuğunuzun yapıcı esasen Yani, hayır, super()
için açık çağrı atlayarak genellikle olumsuz çocuğunuzun sınıf etkilemez bu
public function Child() {
super(); // <-- Added by flash!
trace("Child");
}
benziyor.
Öyleyse neden açıkça super()
aramak isteyeyim?
Birinci nedeni flaş sadece hiç otomatik ana sınıfları yapıcı argümanları gerektiriyorsa, o zaman açıkça bu argümanlarla diyoruz gerekecektir, yani super
bir parametresiz çağrısı üretecektir olduğunu. Bu durumda super(args...)
aramayı atlarsanız, bir derleyici hatası alırsınız. Hatta ebeveyn parametresi olmayan yapıcı varsa
İkincisi, sen kurucular yürütmek sırasını kontrol etmek super()
kullanabilirsiniz. Flash, her zaman childs yapıcısından önce aramayı arayacaktır. Yani bu emri değiştirmek istersen. Sonra, ters sırayla bunu yapar . Yoksa yapabilirdi:
public class Child extends Parent {
public function Child() {
if(false) super()
}
}
flaş bir çağrı var görür, çünkü öyle değil:
public class Child extends Parent {
public function Child() {
// work before initilizing parent
super()
// work after initilizing parent
}
}
Son olarak, orada çok karanlık bir yol diyerek Ailen kurucusunu çağırmak değil bir tane ekle. Ancak, bir if (false)
'un arkasında olduğu için asla çağrılmadığı için, üst sınıf asla başlatılamaz.
Aramayı temel kurucudan güvenle hariç tutabilirsiniz. Kurucuda super()
numaralı telefonu aramazsanız, derleyici, temel yapıcıya argüman içermeyen bir çağrı ekler. Flaş Çocuğunuz yapıcı içinde super()
için bir çağrı tespit etmezse
super()
'u açıkça aramazsanız, Flash, kurucunuzdaki diğer tüm kodları'dan önce otomatik olarak yapacaktır.
super()
'u açıkça çağırırsanız, yazdığınız satırda çağrılır.
Ancak ayarlayabilir veya herhangi this
veya super
özelliklerini almak ya da süper sınıf büyük bir cevap için
- 1. MapHubs gerekmiyor mu?
- 2. Dosyalar EBS birimine kaydediliyor mu? Saklanmaları gerekmiyor mu? Ben
- 3. Sprite
- 4. Javascript'te "superclass" yapıcıyı çağır
- 5. Çerçeveyi artık XCode projesine bağlamamız gerekmiyor mu? Bu soru üzerine
- 6. "super (...)" ile "super (...)" arasındaki fark nedir?
- 7. cxf: argümanlarla jaxb yapıcıyı oluştur
- 8. Python: super()
- 9. Neden her viewDidLoad yönteminde [super viewDidLoad] kullanıyoruz?
- 10. Java NoSuchMethodException yapıcıyı alırken
- 11. cocos2d sprite explosion
- 12. 2d silah sprite karakter sprite üzerinde Overlay?
- 13. Sprite Kit iOS7 - Slider Ekle
- 14. Drag sprite
- 15. Compass sprite jeneratörüne iyi alternatifler var mı? (Rails sprite jeneratörler)
- 16. PHP Dinamik Sprite Oluşturma
- 17. Sprite Seti SKShapeNode, bir
- 18. Maven Super POM
- 19. Crashlytics.start'ı birden çok kez çağırmam gerekir mi?
- 20. Neden java.lang.Class'ın getInterfaces() yöntemi, Sınıf <?> [] yerine ve Sınıf <? super T> []?
- 21. Yapıcıyı ve başlatma listesini taşıma
- 22. Proguard sınıf isimlerini koruyor mu?
- 23. Sprite nesnesinin bir dizisini One Sprite - Unity olarak birleştirin
- 24. Sprite seti iletişim sorunları
- 25. XNA sprite sıralama modu
- 26. Sprite seti ve colorWithPatternImage
- 27. Sprite Kit uygulaması,
- 28. Sprite-Kit'i kullanarak Swift
- 29. Sprite hareketini sıfırdan temizleyin
- 30. java ithalat bir sprite
Teşekkür örneği önce herhangi yöntemleri çağırmak unutmayın! Bu gizli işlevselliği (Otomatik Süper Ekleme) nereden biliyorsunuz? –
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f30.html - ** Constructor Yöntemleri adı verilen bölümün altında ** –
Ana kurucunun bastırılması, atalarının yapıcılarının hiçbirinin aranmadığı anlamına gelir veya sadece anlık süper sınıfı? –