Wykorzystanie polimorfizmu przy wielowątkowości

Wykorzystanie polimorfizmu przy wielowątkowości
RU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 211
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:

Kopiuj
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:

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

}

Kopiuj
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?

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
1

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.