Android'de @ Override ek açıklaması

Java ve Android programlarında yeniyim. Karşılaştığım konu, birkaç kitap, forum ve web sitesinde gezindikten sonra @override notunun ne yaptığını açıkça anlamadığım. Bir yöntemin kullanılmasının ne zaman yapıldığını gösterir. ama neden android'de buna ihtiyaç var? Java için kaynak kodunda nadiren görüyorum, fakat her zaman android.

10

8 cevap

Nadiren eski Java kaynak kodunda görebilirsiniz, çünkü oldukça yeni bir yenilik - oysa Android kodu tanımı gereği daha yeni.

Bu bir güvenlik ağı, gerçekten - derleyiciye bir şeyi geçersiz kılmak için çalıştığını bildirir - bu nedenle lütfen yöntemi hiçbir şeyi geçersiz kılmazsa başarısız olur, ör. adındaki bir yazım hatası nedeniyle. Tıpkı C #'daki yöntem bildiriminin bir parçası olan bir anahtar kelime olmak geçersiz kılma gibi. Yaptıklarınız hakkında açık olmanıza yardımcı olur, bu da hataları önlemeye yardımcı olur ve kodunuzu gelecekteki okuyuculara daha açık hale getirir.

21
katma
Teşekkür ederim. Buradaki her cevaptan bir şey aldım. Ben ve yığmaya yeniyim, lütfen her cevaba teşekkür etmediysem, lütfen kırılmayın. Doğrudan java bilgisine gittim ve soyut sınıflara ve polimorfizme baktım. Anlayışımı yinelemek için, onCreate() işlevini çağırırken, işletim sistemi tarafından kullanılan temel bir etkinliği oluşturmak için yalnızca temel bileşenlere sahiptir. @overide oyuna girdiğinde, temelde onCreate() komutunu kullanarak programda niyenin ne olduğunu yapmayı düşünüyorsun. Sanırım bunu olması gerekenden daha zorlaştırdım, ama en azından yaptım!
katma yazar JBlaza, kaynak

@ Overver ek açıklamasının temelini anlıyorsanız, bu iki amacı dolduran meta veri bilgileridir:

  • Bir arabirim veya genişletilmiş bir sınıfta tanımlandığı için geçersiz kılıldığından, yöntemin geçersiz kıldığını açıklayın

  • Hangi yöntemde yerel olarak bildirildiğini ve hangilerinin geçersiz kılındığını doğru bir şekilde belirlemenize yardımcı olur, çünkü android'de muhtemelen Fragment, Activity, Services, BroadcastReceiver, vb. p>

Java stilinde göremediğiniz konuya gelince, bu sadece oldukça yeni bir özellik (2005'ten beri yeni değil) olduğu için değil, java'daki en az Swing'deki yöntemi geçersiz kılmadığınız için de geçerli. veya SWT, bunları en sık TableModel'de veya genişletilmiş HttpServlet sınıflarında Servlet olduğunda bulabilirsiniz.

7
katma

because you override a lot of methods , example ;when you create your Activity ( which extends Activity ) you need to override the method onCreate( Bundle savedInstanceState) to initialize your Activity , and so on , every time you override a method from a mother Class , eclipse add the annotation @override

2
katma

@Override means that you want to re-define function from superclass in child class. Read more about abstract methods, classes, polymorphism.

2
katma

Android-programlama hakkında hiçbir şey bilmiyorum, ama @ Geçersiz Kılma-Açıklama, yöntemin bir üst sınıf yöntemini geçersiz kıldığını göstermek için kullanılır (veya Java 1.6'da bir arayüz yöntemi uygular). Ek açıklamanın tamamen belgelendirici anlamının yanı sıra, en azından Eclipse, yöntem gerçekten de düşündüğünüz zaman herhangi bir üst sınıf yöntemini geçersiz kılmadığı takdirde sizi uyarır (veya ayarlarınıza bağlı olarak bir hatayı işaretler) -hunting). Belki de Android-derleyici varsayılan olarak tüm geçersiz kılma yöntemlerinin @Override ile açıklamalı olmasını gerektirir.

1
katma

@override means you are borrowing methods from available class and are not defined by the programmer.

1
katma
Kabul edilen cevaba bak
katma yazar raam86, kaynak

Java ve android için gerekli değildir. Sık sık android programlarında görüyorsunuz, çünkü yeni bir aktivite, yöntem vb. Oluştururken tutulması otomatik olarak ekliyor. @Override ek açıklamasını silerseniz hiçbir şey görünmez.

0
katma

@overide, c ++ 'daki sanal yöntem gibi Oncreate kodundaki kod da bu yüzden @overide yapmak zorundayız. Kütüphane tarafından kullanılan ve kişiselleştirmek istediğimiz herhangi bir yöntemi @overide ediyoruz. Oncreat() gibi Oninit() de özelleştirmek istediğimiz yöntemlerdir.

0
katma