「java接口匿名类」java接口匿名内部类
今天给各位分享java接口匿名类的知识,其中也会对java接口匿名内部类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中接口是不能new的,当new一个接口的时候,那么这个就是一个实现该接口的匿名类,这么理解
- 2、Java匿名内部类可以实现接口吗
- 3、java的匿名类可以怎么理解,接口的默认方法怎么调用
- 4、JAVA中内部匿名类以及接口的使用和作用?
java中接口是不能new的,当new一个接口的时候,那么这个就是一个实现该接口的匿名类,这么理解
对,当一个对象只需要使用一次时,就new匿名对象。当只需要用这个类的静态方法时,定义一个匿名类就好。
Java匿名内部类可以实现接口吗
匿名内部类可以用于接口上,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口。
具体示例代码如下:
interface Person {
public void eat();
}
public class Demo {
public static void main(String[] args) {
Person p = new Person() {
public void eat() {
System.out.println("eat something");
}
};
p.eat();
}
}
运行结果:eat something
java的匿名类可以怎么理解,接口的默认方法怎么调用
给你个例子,就好理解了,如下:
//接口
public interface Help {
public String getName();
}
//测试类
public class Test {
class A implements Help {
public String getName() {
return "Name-A";
}
}
private class B implements Help {
public String getName() {
return "Name-B";
}
}
public class C implements Help {
public String getName() {
return "Name-C";
}
}
public static class D implements Help {
public String getName() {
return "Name-D";
}
}
private static class E implements Help {
public String getName() {
return "Name-E";
}
}
}
JAVA中内部匿名类以及接口的使用和作用?
Java中内部匿名类的使用
Java中内部匿名类用的最多的地方也许就是在Frame中加入Listner了吧。
如下:
import java.awt.*;
import java.awt.event.*;
public class QFrame extends Frame {
public QFrame() {
this.setTitle("my application");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
this.setBounds(10,10,200,200);
}
}
内部匿名类,就是建立一个内部的类,但没有给你命名,也就是没有引用实例的变量。
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
new 是建立一个 WindowAdapter对象 ,后面一个 {} 表示这个括号中的操作作用于这个默认的对名象,
而上面的Java程序中后面是一个函数体。这种用法是 Delphi 和 VB 所没有的。
这个用法的作用是:创建一个对象的实例,并且 override 它的一个函数。
打开 WindowAdapter 的代码可以发现。它是一个抽象类。它是对 WindowListener 接口的一个实现。
Frame.addWindowListner(); 的参数是一个 WindowListner ,而实现上是传一个从WindowAdapter 派生出的一个匿名类。
---------------------------------------------------------------
以上观点,纯属个人看法。
如有不同意见,留下名来。
多谢。
----------------------------------------------------------------
补记, java 中的内部匿名类与 Delphi 中的 with 是不是一样的。with 只是指定一个默认的操作对象,是从编辑上来说,减少输入录(执行上也许也会快点)。而 java 中的内部匿名类,着重在于派生一个新类,但不给这个新类指定一个类名。
代码例子如下:
01
02
03 class AClass {
04 String name = new String("");
05
06 AClass() {
07 }
08
09 AClass(String name) {
10 this();
11 this.name = name;
12 }
13
14 public void print() {
15 System.out.println("The name = " + name);
16 }
17 }
18
19 public class QTest {
20 public static void main(String[] args) {
21 (new AClass("RedSoft"){
22 public void print() {
23 System.out.println("the anonymose class print");
24 super.print();
25 }
26 }).print();
27 }
28 }
运行结果:
the anonymose class print
The name = RedSoft
接口因为java不像c++那样能够多继承 所以有了接口,原理和c++里的多继承是一样的,还有就是规范设计
java接口匿名类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java接口匿名内部类、java接口匿名类的信息别忘了在本站进行查找喔。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。