Sur plus d'une occasion, j'ai trouvé moi-même désireux de visibilité des variables qui n'est pas possible en Java. Je voulais certains membres à être visible au sein de leur propre classe et dans les sous-classes, mais pas pour le reste de l'emballage ou du reste du monde. En d'autres termes, je voulais ce:
Modifier Class Package Subclass World
sub-class Y N Y N
Cependant, les concepteurs de Java seulement m'a donné ceci:
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
Le cas typique quand je veux quelque chose comme cela, c'est lors de la création d'une classe abstraite. Parfois, je trouve le résumé parent a besoin d'accéder à certains membres, mais le béton enfants de faire aussi bien. Je peux leur donner cet accès en faisant les membres de l' protected
, mais qui s'ouvre à l'accessibilité pour le reste du paquet lorsque je n'ai pas vraiment envie.
Pour être totalement clair, j'en connais un modificateur est pas possible en Java. Ma question est pourquoi un modificateur pas inclus dans Java? Il me semble (à moi) à être plus naturelle, niveau de visibilité que soit protected
ou la valeur par défaut. Est la raison vient le long des lignes n'étant pas suffisamment important pour être inclus, ou est-il plus liée à des effets secondaires possibles que je n'ai pas pris en compte?