Java nie pozwala uczynić modyfikatora dostępu bardziej restrykcyjnym, ponieważ naruszałoby to zasadę, że instancja podklasy powinna być użyteczna w miejsce instancji nadklasy. Ale jeśli chodzi o ograniczanie dostępu, to być może superklasa została napisana przez inną osobę i nie przewidywała sposobu, w jaki chcesz używać swojej klasy.
Programy pisane przez użytkowników i sytuacje pojawiające się podczas programowania są tak różnorodne, że dla projektantów języka lepiej jest "nie zgadywać", co programiści mogą chcieć zrobić z ich językiem. Jeśli nie ma uzasadnionego powodu, dla którego programista powinien: , a nie być w stanie uczynić specyfikatory dostępu mniej restrykcyjnymi w podklasie (na przykład), to lepiej pozostawić tę decyzję programistom. Zna specyfikę ich indywidualnej sytuacji, ale projektant języka tego nie robi. Więc myślę, że to było dobre zaproszenie dla projektantów Javy.
możliwe duplikat [modyfikatorów dostępu Java i metod nadrzędnych] (http://stackoverflow.com/questions/6851612/java-access-modyfikatory-i-overriding-metody) –