Java'da, yöntemler için kullanılabilir dört erişim değiştirici vardır:
public - herhangi bir sınıf bu yöntemi kullanabilir.
protected - aynı paketteki sınıflar ve herhangi bir paketteki alt sınıflar bu yöntemi kullanabilir.
private - yalnızca bu sınıf bu yöntemi kullanabilir.
no modifier ("package private") - yalnızca aynı paketteki sınıflar bu yöntemi kullanabilir.
Sık sık olan şey, bir alt sınıfta tüm alt sınıfların kullanabileceği yararlı yöntemlere sahip olmak istiyorum. Ancak diğer sınıfların bu yönteme erişmesi anlamlı olmaz ve bir anlamda kapsüllemeyi bozar.
Ben üst sınıfta bu yararlı yöntemler beyan etmek zorunda Yani publicya protectedpakette en azından tüm diğer sınıfların önlerine çıkarıyor. Sadece alt sınıflar tarafından kullanılması amaçlansa da.
subclasses-onlyJava'da erişim değiştirici olmamasının bir nedeni var mı? Bana çok tuhaf geliyor. Bir şey mi kaçırıyorum?
Ayrıca, subclasses-onlydeğişkenleri yalnızca alt sınıflara göstermek istediğinizde bir erişim değiştirici de yararlı olacaktır. Hangisi çok oluyor.