class D{
public void doutPut(){
System.out.println ("D");
}
}
class E{
public void eoutPut(){
System.out.println ("E");
}
}
class Z extends D{
class X extends E{
}
}
public class Test8{
public static void main (String[] args) {
Z.X x = new Z().new X();
// x.doutPut();为什么这里找不到符号,Z继承了D,Z里面有doutPut(),X是Z的内部类,内部类不是能访问外部类的所有属性和方法吗?应该X也能访问doutPut()啊!
x.eoutPut();
    }
}

解决方案 »

  1.   

    你这个D类不是主类的内部类,而你在主类里访问D,应该不能防问吧,,,你把类D作为Test8的内部类应该可以,,      
          我可能说的是错的,不过你可以去试试,,
      

  2.   

    最后提醒你的一个问题是,内部类是不能直接在main中访问外部类的成员和方法的,必须在内部类内部访问才可以,你这样在内部类外部访问外部类的方法和成员是错误的。