匿名内部类怎样理解?

tianye508 2004-01-05 04:32:18
匿名内部类是用来实现一个接口或是继承一个类,那么它于其他的方式实现接口和继承类有什么区别和联系,需要注意一些什么细节,具体又是怎样来实现的呢?
能举个例子吗?不盛感谢!!
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
showerXP 2004-01-05
  • 打赏
  • 举报
回复
匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到

内部类应该都可以的。
我觉得匿名的应该是隐藏实现,而且用完就out的那种。
J2002 2004-01-05
  • 打赏
  • 举报
回复
匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到
实现方式:
SuperType aa = new SuperType(construction parameters){methods and data}

InterfaceType aa = new InterfaceType(){methods and data}
具体实现时需要把SuperType 和InterfaceType 换成具体的超类和接口。
bwl314 2004-01-05
  • 打赏
  • 举报
回复
这个例子是一个多线程的小程序,这里面就应用到了匿名内部类,实现了Runnable接口。
匿名内部类的一般好处是:是代码更加简洁,紧凑,但带来的是易读性下降。他一般用在GUI编程中
实现事件处理等等。希望大家一起讨论

public class RunnableTest{
public static void main(String[] args){
MyThread1 mt1 = new MyThread1();
MyThread2 mt2 = new MyThread2();
MyThread3 mt3 = new MyThread3();
mt2.th.start();
mt1.th.start();
mt3.th.start();
}
}

class MyThread1 implements Runnable{
Thread th = new Thread(this);
public void run(){
for (int i = 0; i < 10; i++){
System.out.println("BMW" + i);
}
}
}

class MyThread2{
Thread th = new Thread(){
public void run(){
for (int i = 0; i < 10; i++){
System.out.println(i);
}
}
};
}
class MyThread3{
Runnable ra = new Runnable(){
public void run(){
for (char ch = 65; ch < 70; ch++){
System.out.println(ch);
}
}
};
Thread th = new Thread(ra);
}
Hodex 2004-01-05
  • 打赏
  • 举报
回复
匿名内部类可以减少你命名一个类的烦脑(^^)

其有很多优点
比如可以访问外部类的私有方法

new YourClass{
...
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧