黑马程序员技术交流社区

标题: 求高手指点!!! [打印本页]

作者: 唐侠君    时间: 2013-12-16 01:57
标题: 求高手指点!!!
匿名内部类是否可以继承其它类,是否可以以implements实现接口?
在网上搜到有两种解释
1.可以继承其他类或完成其他接口,在swing编程中常用此方式。
2.匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
不知到底该怎样解释了,希望大家帮助一下,谢谢了!
作者: lichao    时间: 2013-12-16 08:12
匿名内部类时必须要继承或实现接口的,要不他怎呢创建类呀?匿名内部类的格式:
  1. class out{ //外部类
  2. new Runnable(){ //实现接口的匿名内部类
  3. 写内部内的方法或成员变量;
  4. }
  5. new Object(){ //继承类的匿名内部类
  6. 写内部内的方法或成员变量;
  7. }
  8. }
复制代码

如果不继承类或接口是无法匿名的;
作者: 胡永城    时间: 2013-12-16 11:41
本帖最后由 胡永城 于 2013-12-17 10:51 编辑

1、匿名内部类必须继承其他类或实现接口
2、可以定义普通内部类抽象内部类内部接口,并且这些内部类或内部接口都可以被其他内部类继承或实现,且可以以匿名内部类的方式去继承和实现。
源代码如下,不全面,给你一个方法,其他自己测试吧。
  1. import org.junit.Test;
  2. public class Ohter {
  3.         @Test
  4.         public void test(){
  5.                 new InnerDemo(){//匿名内部类继承InnerDemo
  6.                         void show(){
  7.                                 System.out.println("匿名继承外部其他类InnerDemo复写的show方法");
  8.                         }
  9.                 }.show();
  10.                 new Inner(){//匿名内部类继承Inner
  11.                         void show(){
  12.                                 System.out.println("匿名继承内部类Inner复写的show方法");
  13.                         }
  14.                 }.show();
  15.                 new Interface() {
  16.                         @Override
  17.                         public void show() {
  18.                                 System.out.println("匿名内部类实现内部接口");
  19.                         }
  20.                 }.show();
  21.         }
  22.         class Inner{//内部类Inner
  23.                 void show(){
  24.                         System.out.println("内部类Inner的show方法");
  25.                 }
  26.         }
  27.         interface Interface{//内部接口
  28.                 void show();//未实现的方法
  29.         }
  30. }
  31. class InnerDemo{//外部其他类
  32.         void show(){
  33.                 System.out.println("外部其他类InnerDemo的show方法");
  34.         }
  35. }
复制代码
为什么这么写的问题请看毕老师的视频,面向对象第九。



哎!付哥这是对我羡慕嫉妒恨呀,所以给加了这么多金币    ↓  ↓





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