public abstract class Event implements Runnable {
public void run() {
try {
Thread.sleep(delayTime);
action();
} catch(Exception e) {e.printStackTrace();}
}
}
我上面有這個事件類,當我嘗試啓動線程時它運行線程的第一個命令 - Thread.sleep(delayTime);由於Event類是抽象的,我想運行它的一些子類方法。例如,當我調用action();應該從下面的子類運行的操作方法多線程中的Java調用子類方法
public class ThermostatNight extends Event {
public ThermostatNight(long delayTime) {
super(delayTime);
}
public void action() {
System.out.println(this);
thermostat = "Night";
}
public String toString() {return "Thermostat on night setting";}
}
有很多這樣的子類,像ThermostatDay,法農,FanOff誰如上非常相似。我應該怎麼做call call();在Event類的run()命令中調用睡眠之後?
任何想法?
您的幫助表示感謝!
你的代碼沒問題。如果您執行ThermostatDay對象的運行方法,它將調用ThermostatDay的操作方法。對其他對象也是如此。該對象的操作方法將被調用,正在執行run方法 –
那沒有發生,它不打印System.out.println(this);從孩子集體行動方法 –
延遲時間過後應該。你可以顯示代碼如何執行子類的運行方法嗎? –