1. 程式人生 > >匿名內部類中關於new Runnable()的使用

匿名內部類中關於new Runnable()的使用

匿名內部類也就是沒有名字的內部類,正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化程式碼編寫。

但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個介面

1、繼承一個父類的匿名內部類實現:

abstract class People {
    public abstract void eat();
}
 
public class Demo {
    public static void main(String[] args) {
        People p = new People() {
            public void eat() {
                System.out.println("I can eat ");
            }
        };
        p.eat();
    }
}

2、在介面上使用匿名內部類:

interface People {
    public void eat();
}
 
public class Demo {
    public static void main(String[] args) {
        People p = new People() {           
            public void eat() {
                System.out.println("I can eat ");
            }
        };
        p.eat();
    }
}


        此處 new People( )看似例項化了一個介面,事實並非如此,介面式的匿名內部類是實現了一個介面的匿名類。而且只能實現一個介面。

ps再來說一下執行緒建立的兩種方式:

(1)繼承Thread類的方式因為耦合性太強,所以一般不用。

(2)常用實現Runnable介面的建立執行緒方式。

但是我們更喜歡用匿名內部類的方式來建立一個執行緒。程式碼如下:

new Thread(new Runnable() {
			
			@Override
			public void run() {
				int i=0;
				while(true){
					i++;
					System.out.println("this is 執行緒"+i);
				}
				
				
			}
		}).start();

就這一句話就可以建立並且啟動一個執行緒,相對來說比較方便。而且特別直觀易懂。

此處的new Runnable( )並沒有例項化了一個介面,切記切記!!!!