类中     类的子类        包中其他的类     包以外的类   
protected:  Y         Y                 N             N
private:    Y         N                 N             N
public:     Y         Y                 Y             Y
default:    Y         N                 Y             N

解决方案 »

  1.   

    你对protected的理解没错,但子类对父类的引用应该用关键字super
    如:super.r = 20;
      

  2.   

    呵呵,写的有点歪,相信你能看懂.根据我对控制protected规则的理解,r 为protected,即使A和B在不同的包里面
    但,但在B类里面,A.r也应该是可见的才对。看来是我的理解有错。正确的规则
    应该是怎样的?r 为protected则r对A的子类可见,而B在不同的包中且和A没有继承关系,虽然A作为B的一个方法的参数,但A的protected变量和方法对A是不可见的,所以c.r是看不见的
      

  3.   

    呵呵,看错你的题了,polyhill说的对,我们很多时间类的初始化的时间经常
    init()
    {
    super();
    }