分享

匿名内部类在创建多线的使用

 路人甲Java 2022-12-24 发布于北京

匿名内部类 (new runnable)

1. 解释:

  • 没有名字

  • 内部的类

  • 只使用一次

  • 前提条件:必须继承一个父类,或者implements 一个 接口 interface

 

2. 实例:

 

Demo1:

abstract class Person {
   public abstract void eat();
}

class Child extends Person {
   public void eat() {
       System.out.println("eat something");
  }
}

public class Demo {
   public static void main(String[] args) {
       Person p = new Child();
       p.eat();
  }
}

 

如果Child类使用一次,将变得多余,可以改为如下代码

abstract class Person {
   public abstract void eat();
}

public class Demo {
   public static void main(String[] args) {
       new Person(){
           public void eat() {
               sout("eat !!!");
          }
      }.eat();
  }
}

 

 

Demo2:

 

interface Person {
   public void eat();
}

public class Demo {
   public static void main(String[] args) {
       new Person(){
           public void eat() {
               sout("eat !!!");
          }
      }.eat();
  }
}

此处 new Person( )看似实例化了一个接口,事实并非如此,接口式的匿名内部类是实现了一个接口的匿名类。而且只能实现一个接口。

 

Demo3:

new Thread() {
           public void run() {
               for (int i = 1; i <= 5; i++) {
                   System.out.print(i + " ");
              }
          }
}.start();

 

Demo4:

new Thread(new Runnable() {

@Override
public void run() {
int i=0;
while(true){
i++;
System.out.println("this is 线程"+i);
}


}
}).start();

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多