gelen yöntem miras yöntemin görünürlüğünü azaltmak olamaz bu derleyici hata var:ebeveynden
You cannot reduce the visibility of a inherited method.
Aşağıdaki kodu var
İşteclass Parent {
public void func() {
System.out.println("in Parent");
}
}
public class TestClass extends Parent {
public static void main(String args[]) {
parent obj=new TestClass();
obj.addTest();
}
private void func() {
System.out.println("in child");
}
}
üst sınıf vardır kamu ve tarafından geçersiz func()
yöntem özel alt sınıf TestClass
. Şimdi derleyici görünmezliği azaltamayacağım hatasını atar. Teknik olarak söylemek gerekirse, TestClass
nesnesini üst nesne türüne atama yaptığımda, func()
yöntemi geçersiz kıldığından, TestClass'ın func() işlevi her zaman çağrılacak, o zaman neden görünürlükle ilgilenmeliyiz? Bu hatanın arkasındaki sebep nedir? Birisi bana açık bir şekilde açıklayabilir mi?
Teşekkürler Bohemain. Sebebi var. Adlandırma standartlarını belirttiğiniz için teşekkür ederiz. – Mojoy
Merhaba .. Bu, süper sınıfta kamuya açık bir yöntem için neden çocuk sınıfında korumalı bir değişiklik yapamadığımı düşünmemi sağlıyor? Korunan değiştirici herhangi bir paketin paket ve alt türleri içinde erişilebilir beri! – Mojoy
'korumalı' yöntemleri diğer rasgele sınıflar tarafından görülemez, ancak üstyazının' public' yöntemi de aynı nedenden dolayı geçerlidir. * Görünürlükteki herhangi bir * azalma bir hatadır. – Bohemian