Java内部类问题
锦瑟six 2014-04-06 09:18:43 《Java编程思想》中的一道题
在第一个包中创建一个至少有一个方法的接口。然后在第二个包内创建一个类,在其中增加一个protected的内部类以实现那个接口。在第三个包中,继承这个类,并在一个方法中返回该protected内部类的对象,在返回的时候向上转型为第一个包中的接口的类型。
我的代码如下:
package packages.p1;
public interface SomeInterface{
void park();
}
----------------------------------------
package packages.p2;
import packages.p1.*;
public class SomeClass{
protected class SomeInnerClass implements SomeInterface{
public void park(){System.out.println("I'm parking.");}
}
}
---------------------------------------
package packages.p3;
import packages.p2.*;
import packages.p1.*;
public class SubClass extends SomeClass{
public SomeInterface mine(){return new SomeInnerClass();}
public static void main(String[] args){
SubClass sc = new SubClass();
SomeInterface si = sc.mine();
si.park();
}
}
不知道为什么子类不可以访问父类的内部类?