黑马程序员技术交流社区
标题:
接口不能实例化,那new Runnable(){....}怎么解释?
[打印本页]
作者:
刘忠德
时间:
2012-1-1 19:52
标题:
接口不能实例化,那new Runnable(){....}怎么解释?
本帖最后由 刘忠德 于 2012-1-2 22:38 编辑
RT,接口不能实例化,那new Runnable(){....}怎么解释?
作者:
詹英鹏
时间:
2012-1-1 19:59
new Runnable(){
......
};
后面的分号了吗?
这句实现了Runnable接口。
{};
大括号中的是实现方法。
这个应该是个匿名内部类
下面这个列子就是他的一个用法
public static void start(final String host, final DatagramSocket socket) throws java.net.UnknownHostException
{
Runnable udpService = new Runnable()
{
public void run()
{
if (host != null)
{
try
{
AbstractDatagramSocket.addDatagramSocket(host, socket);
}
catch (UnknownHostException e)
{
LOGGER.error(null, e);
}
}
try
{
MyOodbTunnelUdp tunnelUdp = new MyOodbTunnelUdp(socket);
tunnelUdp.mainloop();
}
catch (Exception e)
{
if (socket.isClosed() == false)
{
LOGGER.error(null, e);
}
}
if (host != null)
{
try
{
AbstractDatagramSocket.removeDatagramSocket(host);
}
catch (UnknownHostException e)
{
LOGGER.error(null, e);
}
}
}
};
作者:
颜宗茂
时间:
2012-1-1 21:01
这是匿名内部类的语法和用法。表示一个实现了Runnable的新类的一个对象。
作者:
黄湘怡
时间:
2012-1-1 22:05
这个是一个匿名内部类~!
一个类如果只使用一次, 那么就可以定义为匿名内部类.
定义方式: new 父类名(){类定义}
这样做是先声明了一个指定父类的子类, 然后用这个子类创建了一个对象
new Thread(new Runnable(){
public void run(){
for(int x = 0; x < 10;x++){
System.out.println("x = "+x);
}
}
}).start();
复制代码
作者:
wsssx
时间:
2012-1-2 16:20
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2