1 package cn.learn.thread.Thread; 2 /* 3 匿名内部类方式的实现线程的创建 4 5 匿名:没有名字 6 内部类:写在其他类的内部 7 8 作用:简化代码,不用单独写一个类,来设置线程任务 9 把子类继
1 package cn.learn.thread.Thread; 2 /* 3 匿名内部类方式的实现线程的创建 4 5 匿名:没有名字 6 内部类:写在其他类的内部 7 8 作用:简化代码,不用单独写一个类,来设置线程任务 9 把子类继承父类,重写父类方法,创建子类对象合成一部完成 10 或者实现类实现接口,重写接口方法,创建实现类对象一部完成 11 匿名内部类的最终产物:子类/实现类对象,没有名字 12 13 格式: 14 new 父类/接口{ 15 重写父类/接口方法 16 } 17 18 */ 19 public class InnerClassThread { 20 public static void main(String[] args) { 21 //已知父类线程是Thread,继承类 22 new Thread("线程1"){ 23 //重写run方法设置线程任务 24 25 @Override 26 public void run() { 27 for (int i = 0; i < 20; i++) { 28 System.out.println(Thread.currentThread().getName()); 29 30 } 31 } 32 }.start(); //开启线程 33 34 35 //实现接口,多态 Runnable runnableThread = new RunnableImpl(); 36 Runnable run=new Runnable(){ 37 //重写run方法,设置线程任务 38 @Override 39 public void run() { 40 for (int i = 0; i < 20; i++) { 41 System.out.println(Thread.currentThread().getName()); 42 } 43 } 44 }; 45 //开启实现类的多线程,设置名字 46 new Thread(run,"线程二").start(); 47 48 //上述代码再简化 49 new Thread(new Runnable(){ 50 //重写run方法,设置线程任务 51 @Override 52 public void run() { 53 for (int i = 0; i < 20; i++) { 54 System.out.println(Thread.currentThread().getName()); 55 } 56 } 57 },"线程三").start(); 58 59 } 60 }