Java的Protected修饰符

        Protected字段是为了继承而设计的.首先,一般的字段由于封装性,一般设置成private,但如果有新类继承当前字段所属的类,就要修改当前字段的访问控制权限. 

        如果子类和父类在同一个package中,只需要将private去掉,权限变为包访问权限即可;但是如果子类和父类不在同一个包内,为了能够让继承实现,必须把private改成public.对于类库和客户端程序而言,他们大多不在一个包内,为了能够让子类访问而改成public,这样使得其他不相关的类也能访问该成员(或方法),增加了风险. 

        所以设计了protected字段,他介于public和包访问权限之间.在跨包访问的过程中做了一个条件限定:包权限 + 只能让跨包的子类访问 (public权限 - 非子类跨包访问) 

        非常要注意的是,protected权限中的子类可访问指的是:在子类中可以通过子类对象直接访问继承来的父类的protected对象,但是不能通过父类对象访问该protected对象。同时, 

        在第三个类(不与子类、父类在同一个包)中,同过子类对象访问父类的protected成员或者方法,不行(只能在子类中) 

Eg: 

Package nima 

Public class TTG{ 

        Private int meme; 

        Private int gg; 

        Public static void main(String[] args){ 

                Element Ele = new Element(1,2); 

                Ele.clone(); 

        } 

}  

Class Element{ 

        Int id; 

        Int value; 

        Public Element(int id, int value){ 

                This.id = id; 

                This.value = value; 

        } 

可以发现,子类Element从父类Object继承来的protected方法,只能在Element中访问,而在第三方类TTG中,不能通过其对象访问 

猜你喜欢

转载自blog.csdn.net/qwerrfxgj/article/details/84062581