A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗安迪 中级黑马   /  2014-3-4 18:17  /  1581 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗安迪 于 2014-3-5 09:20 编辑


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

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

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

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

8 个回复

倒序浏览
我觉得应该是 Outter.Inner oi = new Outter().new Inner();

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
这样应该可以的,以前我遇到这样的是这样new的  Outter.inner i = new inner() ;
回复 使用道具 举报
  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. }
复制代码

回复 使用道具 举报

刚才那个回答错误了,不是子类的访问,理解错了,参考现在这个,不好意思
回复 使用道具 举报
无道 发表于 2014-3-4 21:19
我觉得应该是 Outter.Inner oi = new Outter().new Inner();

噢。。。谢谢你
回复 使用道具 举报

谢谢你 好像有很多种写法对应不同的应用是吧
回复 使用道具 举报
罗安迪 发表于 2014-3-4 23:59
谢谢你 好像有很多种写法对应不同的应用是吧

嗯。:lol
回复 使用道具 举报
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) :匿名内部类会隐式地继承一个父类或实现一
个接口。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马