接口能不能被实例化。
在匿名类中实例化~
上代码:帮忙解释下.....
--------------------编程问答-------------------- 这是匿名的内部类
并不是FileNameFilter的实例化,
而是定义了一个内部类,实现了accept接口,同时返回一个实现了接口的对象。
该代码等效于
class A implements FileNameFilter
{
public void accept(File f,String s)
{
//实现接口
}
}
dir.list(new A()) --------------------编程问答-------------------- ps.
接口不实例化,
实现了接口的类才能被实例化。 --------------------编程问答-------------------- new 接口或者抽象类()
{
方法
}
这种写法 返回的是接口或者抽象类的子类对象
名称叫 匿名内部类 --------------------编程问答-------------------- 接口不能被实例化,楼主代码
是匿名内部类的方式 --------------------编程问答-------------------- 使用匿名内部类返回接口的实现类的对象 --------------------编程问答-------------------- 匿名内部内,哈哈。 --------------------编程问答-------------------- 同一楼... --------------------编程问答-------------------- 匿名内部实现类
同下:
Thread thread = new Thread(new Runnable(){
public void run(){
...
}
}); --------------------编程问答-------------------- 这是内部类的一种 --------------------编程问答-------------------- 同一楼!!!!!!!!!!! --------------------编程问答-------------------- 接口不能被实例化,但是接口变量可以引用一个实现了接口的类的对象! --------------------编程问答-------------------- 如果一个类的用处非常小,可能就在那一块用一下就不再用,这样的代码我们一般用匿名的实类化方式。匿名类其是是一个类或接口的子类,无论是接口,抽像的、不抽像的类都可以用匿名类对方法进行重写,以及加入有用的属性等待。匿名类是把定义和初始化放在一起实现的,也就意味着这一段代码的重用性很少。 --------------------编程问答-------------------- 举个例子。。。
java.io.Serializable ser = new Serializable(){};--------------------编程问答-------------------- 接口被继承,然后实例化继承类 --------------------编程问答-------------------- 关于JAVA内部类:一个内部类的定义是定义在另一个类内部的类。
存在它的原因是:
1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。即内部类实例对包含它的哪个类的实例来说,是特权的。
2.对于同一个包中的其他类来说,内部类能够隐藏起来,换句话说,内部类不管方法的可见性如何,那怕是public,除了包容类,其他类都无法使用它。
3.匿名内部类可以很方便的定义回调。
4.使用内部类可以非常方便的编写事件驱动程序。
其实它真正的目的仅仅为了定义回调--进一步就是事件驱动。
接口和回调:编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。 --------------------编程问答-------------------- 接口不能被实例化,接口对象只能接受实现了此接口类的对象,这是实现的对象的多样化, --------------------编程问答--------------------
++1 --------------------编程问答-------------------- 可以参照一下,java.util.MAP,与java.util.HashMap. --------------------编程问答-------------------- 你这个相当于实现 并复写FileNameFilter接口的 accept方法 --------------------编程问答-------------------- 匿名子类的实例 --------------------编程问答-------------------- swing里面实现监听 ,这种写法很多,去看看就懂了 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 接口怎么能实例化呢,接口是用来实现的 --------------------编程问答-------------------- 路过,楼主的写法相当于写了一个类实现了FilenameFilter接口,只是这个类是没有指定名字的,后面会有{...}就是要重写FilenameFilter接口中的方法的,因为楼主的意图是只让这个类在此处用到,所以这种实践是良好的实践,可见楼主对Java了解较深,然后匿名的类用了new关键字就相当于创建了一个对象,所以这种实例化过程与单独编写一个类实现FilenameFilter接口的效果是相似的,只不过后者可以再多处用到,可以复用。
补充:Java , Java SE