Можем ли мы повторно посетить основную причину, по которой мы хотели, чтобы наш класс вел себя как Thread
? Нет никакой причины, мы просто хотели выполнить задачу, скорее всего, в асинхронном режиме, что точно означает, что выполнение задачи должно входить из нашего основного потока и основного потока, если заканчивается раньше, может или не может ждать для разветвленного пути (задачи).
Если это целая цель, то где я вижу потребность в специализированном потоке. Это может быть достигнуто путем сбора RAW-потока из пула потоков в системе и назначения его нашей задачи (может быть экземпляром нашего класса), и это все.
Итак, будем подчиняться концепции ООП и писать класс типа, который нам нужен. Есть много способов сделать что-то, делайте это правильно.
Нам нужна задача, поэтому напишите определение задачи, которое можно запустить в потоке. Поэтому используйте Runnable.
Всегда помните, что implements
специально используется для придания поведения, а extends
используется для передачи функции / свойства.
Мы не хотим, чтобы свойство потока , вместо этого мы хотим, чтобы наш класс работал как задача, которая может быть запущена.