「java接口匿名类」java接口匿名内部类

博主:adminadmin 2022-11-28 22:07:07 43

今天给各位分享java接口匿名类的知识,其中也会对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接口匿名类的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。