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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 16463535 中级黑马   /  2013-4-13 15:03  /  7360 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 16463535 于 2013-4-14 00:35 编辑

匿名内部类是否可继承其他类?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 刘胜寒 于 2013-4-13 15:56 编辑

  1. abstract class DemoAbs
  2. {
  3.         abstract void show();
  4. }
  5. class Outer
  6. {
  7.         int x = 3;
  8.         public void function()
  9.         {
  10.                 new DemoAbs()
  11.                 {
  12.                         public void show()
  13.                         {        
  14.                                 System.out.println(x);
  15.                         }
  16.                         
  17.                 }.show();
  18.         }
  19. }

  20. public class Main
  21. {
  22.         public static void main(String[] args)
  23.         {
  24.                 new Outer().function();
  25.         }
  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报 1 0
这个是必须的....
回复 使用道具 举报
1、匿名内部类,其实就是内部类的简写格式
2、定义匿名内部类的前提:内部类必须是继承一个类或实现接口
3、匿名内部类的格式: new 父类或者接口(){定义子类的内容}
其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖。可以理解为带内容的对象。

多次调用:
匿名内部类不适合多次调用,定义的方法最好不包括三个。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
1、匿名内部类,其实就是内部类的简写格式
2、定义匿名内部类的前提:内部类必须是继承一个类或实现接口
3、匿名内部类的格式: new 父类或者接口(){定义子类的内容}
其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖。可以理解为带内容的对象。

多次调用:
匿名内部类不适合多次调用,定义的方法最好不包括三个。
回复 使用道具 举报
匿名内部类是没有名字的内部类,不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现.
一、由于匿名内部类没有名字,所以它没有构造函数。因为没有构造函数,所以它必须完全借用父类的构造函数来实例化,换言之:匿名内部类完全把创建对象的任务交给了父类去完成。
二、在匿名内部类里创建新的方法没有太大意义,但它可以通过覆盖父类的方法达到神奇效果。
三、因为匿名内部类没有名字,所以无法进行向下的强制类型转换,持有对一个匿名内部类对象引用的变量类型一定是它的直接或间接父类类型。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
匿名内部类必须指定父类或者指定实现的接口
new 父类或接口(){}
必须指定父类或者实现的接口。
匿名内部类与正常类不一样,它只能指定一个要继承的类或者是指定一个要实现的接口。两者不能兼得!
实现接口,也只能实现1个。要实现接口,就不能指定父类!
回复 使用道具 举报
fdg666 中级黑马 2015-12-2 22:26:28
8#
明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马