Java statik korumalı kullanmalıyız neden
Bu soru ile Is there a way to override class variables in Java?gidiyordum 36 upvotes İlk Yorum oldu:
Hiç
protected static
, run.
Herkes neden protected static
karşılanmaz açıklayabilir mi?
CEVAP
Daha doğrudan bir sorun daha biçimsel bir şey. Sınıfının ne olduğunu, doğru iyice düşünmediğini de gösteriyor.
Ne static
anlamı: düşünmek
Bu değişken sınıf düzeyinde bulunan, ayrı ayrı her bir örnek yokbana uzanan sınıflardan bağımsız bir varlığı yoktur.
Ne protected
anlamı: düşünmek
Bu değişken sınıflar aynı paket içinde bu sınıf tarafından görülebilirve bana uzanan sınıfları.
İki anlam tam olarak birbirini dışlayan değil ama oldukça yakın.
Tek dava görebiliyorum nereye kullanabilirsiniz iki arada eğer bir soyut sınıf olarak tasarlanan genişletilmiş ve genişletme sınıf olabilir sonra Değiştir davranışı kullanarak sabitler tanımlanan orijinal. O zaman bile hala neredeyse kesinlikle daha iyi bir ortak olarak sabitler mi olurdu sanki çok zayıf bir sebep. Bu sadece her şeyi daha temiz hale getirir ve insanların alt sınıflandırmaya daha fazla esneklik sağlar.
Ve ilk nokta genişletmek açıklar - bu deneyin örnek kod için:
public class Program {
public static void main (String[] args) throws java.lang.Exception {
System.out.println(new Test2().getTest());
Test.test = "changed";
System.out.println(new Test2().getTest());
}
}
class Test {
protected static String test = "test";
}
class Test2 extends Test {
public String getTest() {
return test;
}
}
Sonuçları göreceksiniz:
test
changed
De kendiniz deneyin: https://ideone.com/KM8u8O
8* *sınıfın statik üye test
Test
adını nitelemek gerek kalmadan erişmek mümkün ama ya kendi kopyasını miras almaz. Aynı değişken bakıyor.
Neden Java statik olarak bir sınıf bil...
Neden't statik yöntemler Java'da ...
Neden Java temel yöntem statik mi?...
Neden't ben bir Java arayüzü stat...
Neden't statik Java yöntemleri ge...