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 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, которые очень похожи, как описано выше. Что мне следует делать при вызове action(); после вызова сна из команды run() в классе Event?
Любые идеи?
Ваша помощь приветствуется!
Ваш код в порядке. Если вы выполняете метод run объекта ThermostatDay, он будет вызывать метод действия ThermostatDay. Аналогично для других объектов. Будет вызываться метод действия этого объекта, на котором выполняется метод запуска. –
То, что не происходит, не печатает System.out.println (это); из метода действия дочернего класса –
Он должен после истечения времени задержки. Можете ли вы показать код, как вы выполняете метод запуска дочернего класса? –