[英]JAVA - Multithreading by Extending Thread Class - About Creating Objects
public class game extends Thread{
public void run() {
System.out.println("Sub-class must override the void run() method of Thread class!");
}
public static void main(String args[]) {
Thread t = new Thread();
t.start();
}
}
對於上面的這些代碼行,控制台中什么也沒有。 但是對於下面的這些代碼:
public class game extends Thread{
public void run() {
System.out.println("Sub-class must override the void run() method of Thread class!");
}
public static void main(String args[]) {
game g = new game();
g.start();
}
}
我得到“子類必須重寫Thread類的void run()方法!” 顯示在控制台中。
您能幫我嗎,為什么我需要創建一個子類的對象而不是Thread類的對象? 有什么不同? 對不起,我是一個新手。
這是因為在第一個代碼中,該對象是沒有任務要運行的默認線程。 您本可以給線程對象執行這樣的任務,
public class game implements Runnable{
public void run() {
System.out.println("Sub-class must override the void run() method of Thread class!");
}
public static void main(String args[]) {
Thread t = new Thread(new game());
t.start();
}
}
在第二種情況下,您為線程(子類游戲)提供了默認任務以在其run
方法中打印。 在此處查看有關線程的更多信息
如果創建父類的實例,則編譯器將不知道其子類。 這就是為什么您需要實例化父級操作的子類的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.