 |
受保护关键字即protected的用法只有在继承中才能体现出来,就是为什么先把继承引出来的原因,可以看看上面继承时说的子类和父类不在同一包中时,只有public和protected修饰的变量和方法才可以被继承使用.除了在继承这点的区别,在同一包中时,用法和作用和友好是一摸一样的,注意体会一下. 来全面总结一下protected的用法: 一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承,比如B是A的子类,C是B的子类,D又是C的子类,那么B,C,D类都继承了A的protected的成员变量和方法.如果用D类在D本身创建了一个对象,那么该对象总是可以通过"."运算符访问继承的或者自己定义的protected变量和方法,但是,如果在另一个类中,比如Other类,用D类创建了一个对象object,该对象通过"."运算符访问protected变量和方法的权限如下所述: 1)子类D中亲自声明的protected成员变量和方法,不可能是从别的类继承来的,object访问这些非继承的protected成员变量和方法时,只要other类和D类在同一包中就可以了. 2)如果子类D的对象的protected成员变量或方法是从父类继承来的,那么就要一直追追述到该protected成员变量或方法的"祖先"类,即最先头的父类A,如果Other类和A类在同一包中,object对象能访问继承的protected变量或protected方法.
访问权限不只能修饰变量和成员还是可以修饰类的,但protected和private不可以 类声明时,如果关键字class前面加上public关键字,就称这样的类是一个public类,如 public class A {//...} 可以在任何另外一个类中,使用public类创建对象.如果一个类不加public修饰,如 class A {//...} 这样的类称为友好类,那么另外一个类中使用友好类创建对象时,要保证它们是在同一个包中 特别注意:不能用protected和private修饰类
| |