黑马程序员技术交流社区

标题: 求解一个关于继承的问题 [打印本页]

作者: 赵永康    时间: 2012-9-22 10:13
标题: 求解一个关于继承的问题
本人今天在复习继承的时候,突发奇想想到了一种情况,大家看看代码
class A
{
       class B
     {
     }
}
class C extends A
{
}
然后,类ABC里面具体代码我就不写了,我的疑问就是B是A的内部类,是成员内部类,那么C继承了A,C是不是就可以把A的内部类B也能继承过来吗?包括B的成员变量和方法
那么当B时A的局部内部类的时候,又是什么情况呢??求解!!!哪位对继承特别明白的可以给指点下啊

作者: 张 涛    时间: 2012-9-22 10:47
这样一个类:
  1. public class A  {
  2.         public int ax;
  3.        
  4.         public class B {
  5.                 public int bx;
  6.                 void printBx(){}
  7.         }
  8. }
复制代码
再来一个C类:
  1. public class C extends A {

  2. }
复制代码
验证:
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 A a = new A();
  4.                 Class clazz =a.getClass();
  5.                
  6.                 Field[] fields = clazz.getFields();
  7.                 System.out.println(fields.length);
  8.                 for(Field f:fields){
  9.                         System.out.println(f.getName());
  10.                 }

  11.                 C c = new C();
  12.                 clazz =c.getClass();
  13.                
  14.                 fields = clazz.getFields();
  15.                 System.out.println(fields.length);
  16.                 for(Field f:fields){
  17.                         System.out.println(f.getName());
  18.                 }
  19.                
  20.         }

  21. }
复制代码
结果:
1
ax
1
ax

得到两个结论:
1.通过反射无法获得内部类;
2.继承无法得到内部类。
作者: 赵永康    时间: 2012-9-22 11:51
张 涛 发表于 2012-9-22 10:47
这样一个类:再来一个C类:验证:结果:
1
ax

非常感谢 今天这教了我一招 不慎感谢 还是黑马牛人多啊 呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2