Java16-9 多线程开发方式

public class AnonymousThreadDemo //匿名
{
    public static void main(String[] args) {
        new Thread(){
            public void run(){
                for (int i = 0; i <40; i++) {
                    System.out.println("haha");
                }
            }
        }.start();
        Runnable r=new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <30; i++) {
                    System.out.println("hehe");
                }
            }
        };
        new Thread(r).start();
        
        for (int i = 0; i <30; i++) {
            System.out.println("heihei");
        }
    }
}
public class AnonymousThreadDemo //匿名
{
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <30; i++) {
                    System.out.println(i);
                }
            }
        }){
            public void run(){
                for (int i = 0; i <40; i++) {
                    System.out.println("haha");
                }
            }
        }.start();

    }
}

只运行haha因为匿名内部类 只运行子类对象 传进Thread对象中运用的是父类的run方法(Thread类中run方法) 而Thread{}中的是子类run方法。(类似于创建了一个类继承了这个Thread父类)可无论父类写了什么 都只运行子类run方法 覆盖重写

你可能感兴趣的:(Java16-9 多线程开发方式)