protected 修饰符!
文件一:
package com.strategy;
public class A {
protected void show() {
System.out.println("show");
}
}
文件二:
package com.test;
import com.strategy.*;
public class B extends A {
public static void main(String[] args) {
A a = new A();// 方式 1
a.show();
B a = new B(); //方式2
a.show();
}
}
请问:
我知道protected 说可以被子类可用,为什么不能再子类中 new 父类的实例,去访问 父类的protected 方法?
硬是在子类中 new 子类的实例,才能去访问父类中的protected 方法?
------解决方案--------------------方式1和方式2都没问题吧?
------解决方案--------------------你的都没问题,是你把对象名取成相同的了,你把方式二改成:B a1 = new B(); // 方法二
a1.show();就可以了。
------解决方案--------------------楼主看看这个.
http://bbs.csdn.net/topics/390227951
------解决方案--------------------楼主还是先把protected的访问权限搞清楚。protected修饰的只能被同一个包中的类或其子类访问。你这个子类和父类不在同一个包下。你在子类中new 父类的实例,不在同一个包下当然不能访问了。而你用子类访问不论在哪个包地下。子类当然都能访问。
------解决方案--------------------
嗯,可以这么理解