Wykorzystanie polimorfizmu przy wielowątkowości

0

Cześć

Przerobiłem temat polimorfizmu i czytam właśnie o wątkach. Mam takie dwa przykłady z książki:
Pierwszy przykład:

public class Watki2 implements Runnable
{

	public static void main(String[] args) 
	{
		Watki2 w2 = new Watki2();
		Thread t2 = new Thread(w2);
		t2.start();
		System.out.println("Watek1");
	}
	public void run()
	{
		System.out.println("Watek2");
	}
			
}

Tutaj dzięki mechanizmowi polimorfizmu mogę tą linijkę Watki2 w2 = new Watki2(); zapisać w taki sposób Runnable w2 = new Watki2(); i też będzie to poprawne?
Drugi przykład:

public class Watki implements Runnable
{
	
	public void run()
	{
		doDziela();
	}
	public void doDziela()
	{
		System.out.println("2 wątek");
	}

}

public class Watki3 
{

	public static void main(String[] args) 
	{
		Runnable r3 = new Watki();
		Thread t3 = new Thread(r3);
		t3.start();
	}

}

Tutaj dzięki temu, że klasa Watki implementuje interfejs Runnable mogę analogicznie zapisać Watki r3 = new Watki(); i też będzie to poprawne?

Chodzi mi o to czy z jakiegoś konkretnego powodu zastosowano w przykładzie drugim polimorfizm? Czy są to tylko przykłady gdzie użyto dwóch różnych sposobów?

0

Ciezko to zmienic tak jak chcesz, odpalic program i zobaczyc jaki bedzie wynik?

1

W obu przypadkach masz polimorfizm, bo konstruktor dla Thread przyjmuje Runnable (a nie Watek) i na nim jest potem wywoływana metoda run().

1 użytkowników online, w tym zalogowanych: 0, gości: 1