Jinak v Javě by se dal přístup k accessibility shrnout jako "co nemohu vidět, to pro mne neexistuje", což je trochu rozdíl oproti C++. Například následující příklad v C++ neprojde:
class A {};
class B : public A {};
class X {
public: void foo(A a){}
protected: void foo(B b){}
};
class Bar {
void bar(X x, B b) {
x.foo(b);
}
};
C++ zahlásí chybu, protože třída Bar nemá přístup k protected metodě X.foo(B). Javě to nevadí, ta prostě zavolá X.foo(A), kterou vidí a je na ten parametr aplikovatelná. Pozor jen, že pokud to budete v Javě zkoušet, tak je dobré mít X a Bar v jiných balíčcích, protože třídy z jednoho balíčku si navzájem vidí (a mohou tedy i volat) své protected metody.