2012-11-09 12 views
10
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 


Dlaczego ochrona może być dostępna w tym samym pakiecie bez dziedziczenia w java?

public class a { 
    protected int x; 
    } 

    public class b { 
     b() { 
       a A=new a(); 
       A.x=9;//why we can access this field ? 
     } 
    } 

pomóż moim znać konkretną pracę chronioną w Javie

+0

proszę pomóż mi poznać konkretne dzieło chronione w Javie – motaz99

+0

Zobacz tutaj: http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and -prywatne – looper

+8

Bo tak właśnie zaprojektowano język programowania Java. – Jesper

Odpowiedz

13

Dlaczego? Ponieważ tak zaprojektowano język programowania Java. Nie ma o wiele więcej.

Coś, co jest protected jest dostępny z

  • samej klasy,
  • klas w tym samym opakowaniu (nie ma znaczenia, czy są one podklasy lub nie),
  • podklasy (nie ważne, czy są w tym samym opakowaniu, czy nie).

Różni się od C++, ale Java nie jest w C++, więc niekoniecznie działa w ten sam sposób.

+1

Dziękuję Tak więc w Javie, jeśli mamy pakiet, nie możemy pozwolić, aby podklasy uzyskiwały dostęp do pól przestrzennych i uniemożliwiały dostęp do innych klas w tym samym pakiecie – motaz99

Powiązane problemy