2012-11-09 32 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 


Tại sao bảo vệ có thể được truy cập trong cùng một gói mà không thừa kế trong java?

public class a { 
    protected int x; 
    } 

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

xin vui lòng giúp đỡ tôi để biết công việc cụ thể của bảo vệ trong Java

+0

hãy giúp tôi biết công việc cụ thể được bảo vệ trong Java – motaz99

+0

Xem tại đây: http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and -private – looper

+8

Vì đó là cách ngôn ngữ lập trình Java được thiết kế. – Jesper

Trả lời

13

Tại sao? Bởi vì đó là cách ngôn ngữ lập trình Java được thiết kế. Không còn nhiều thứ nữa.

Cái gì đó là protected có thể truy cập từ

  • lớp chính nó,
  • lớp trong cùng một gói (không quan trọng nếu họ là lớp con hay không),
  • lớp con (không nếu chúng ở trong cùng một gói hay không).

Điều này khác với C++, nhưng Java không phải là C++, vì vậy nó không nhất thiết phải hoạt động theo cùng một cách.

+1

Cảm ơn bạn
Vì vậy, trong Java nếu chúng ta có trên gói, chúng tôi không thể để các lớp con truy cập trường không gian và ngăn các lớp khác trong cùng một gói để truy cập nó – motaz99

Các vấn đề liên quan