d3coy_00
@d3coy_00

Наследование методов Java?

Привет, наткнулся на такую строку:


За работу с потоками в Java отвечает класс Thread. Создать новый поток для выполнения задачи — значит создать экземпляр класса Thread и связать его с нужным кодом. Сделать это можно двумя путями:

1) образовать от Thread подкласс;

2) имплементировать в своём классе интерфейс Runnable, после чего передавать экземпляры класса в конструктор Thread.



Наследование всех методов класса через подкласс соответственно выполняется так:

public class PingPongThread extends Thread{
   PingPongThread(String name){
       this.setName(name); // переопределяем имя потока
   }

   @Override
   public void run() {
       Ball ball = Ball.getBall();
       while(ball.isInGame()){
           kickBall(ball);
       }
   }

   private void kickBall(Ball ball) {
       if(!ball.getSide().equals(getName())){
           ball.kick(getName());
       }
   }
}


Возможно ли не наследуя весь класс в самописный вызвать методы из класса Thread? Я так понимаю это и есть второй вариант, как он реализуется? Как в Python? Выполняя простой import и после в самописном классе вызывать необходимую функцию например вот так? :

import socket

class test:
    def __init__(self):
        print("Объект создан")
        self.create_socket()

    def create_socket(self):
        HOST = "127.0.0.1"
        PORT = "9999"
        PORT = int(PORT)

        # supports the context manager type
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
            sock.bind((HOST, PORT))  # associate the socket with a specific network interface
            print("socket created")


def main():
    t_obj = test()

if __name__ == '__main__':
    main()
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Thread myThread = new Thread() {
    public void run() {
       //тут код ваш
    }  
};

Или вот так с лямбдами
Thread myThread  = new Thread(() -> {
    //тут код ваш
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы