黑马程序员技术交流社区

标题: 关于内部类和继承的问题 [打印本页]

作者: 罗安迪    时间: 2014-3-4 18:17
标题: 关于内部类和继承的问题
本帖最后由 罗安迪 于 2014-3-5 09:20 编辑


我用两个内部类的时候,他们应该是可以有继承关系吧。

然后在外部类体中内部类体外 创建内部类的对象时是不是应该:Outter.inner a = new Outter.inner() ;

但是编译会出错,为什么呢 ···

作者: 无道    时间: 2014-3-4 21:19
我觉得应该是 Outter.Inner oi = new Outter().new Inner();
作者: q527198615    时间: 2014-3-4 21:59
这样应该可以的,以前我遇到这样的是这样new的  Outter.inner i = new inner() ;
作者: q527198615    时间: 2014-3-4 22:08
  1. public class Outter {
  2.        
  3.        
  4.         public static void main(String[] args) {
  5.                 Outter o = new Outter();
  6.                 Outter.Inner1 oi = o.new Inner1();
  7.         }
  8.        
  9.         class Inner1{
  10.                
  11.         }
  12.        
  13.         class Inner2 extends Inner1{
  14.                
  15.         }
  16. }
复制代码


作者: q527198615    时间: 2014-3-4 22:09
q527198615 发表于 2014-3-4 22:08

刚才那个回答错误了,不是子类的访问,理解错了,参考现在这个,不好意思
作者: 罗安迪    时间: 2014-3-4 23:58
无道 发表于 2014-3-4 21:19
我觉得应该是 Outter.Inner oi = new Outter().new Inner();

噢。。。谢谢你
作者: 罗安迪    时间: 2014-3-4 23:59
罗安迪 发表于 2014-3-4 23:58
噢。。。谢谢你

谢谢你 好像有很多种写法对应不同的应用是吧
作者: 无道    时间: 2014-3-5 18:56
罗安迪 发表于 2014-3-4 23:59
谢谢你 好像有很多种写法对应不同的应用是吧

嗯。:lol
作者: 雨中的台北    时间: 2014-3-12 20:06
1.  内部类(Inner Class) ,内部类共分为 4 种。

2.  静态内部类(static inner class) :只能访问外部类的静态成员变量与静态方法,生成
静态内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass.InnerClass();

3.  成员内部类(member inner class) : 可以访问外部类的静态与非静态的方法与成员变
量。生成成员内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass().new InnerClass();

4.  若想在局部内部类中访问外部类的成员变量,语法为:OuterClass.this.a;

5.  局部内部类(Local Inner Class) : 定义在方法当中,只能访问方法中声明的 final 类型
的变量。

6.  匿名内部类(Anonymous Inner Class) :匿名内部类会隐式地继承一个父类或实现一
个接口。




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