Video: Polymorphism (Çok şekillilik) Java ile Nesne Yönelimli Programlama 18. Video 2024
Polimorfizm Java'nın temel sınıf değişkenlerini alt sınıf nesnelerine atıfta bulunma, bir nesnenin hangi alt sınıfına ait olduğunu takip etme yeteneğini ifade eden fantezi bir bilgisayar bilim terimidir; ve program derlendiğinde alt sınıf bilinmese de alt sınıfın geçersiz kılınmış yöntemlerini kullanın.
Whew! Bu bir lokma. Aşağıya kaynar, belirli bir türe bir parametre çağrıldığında, bunun yerine bu türün alt sınıfından yaratılan bir nesneyi kullanabilirsiniz.
Örneğin, saygıdeğer Tic-Tac-Toe oyununu oynatabilen bir uygulama geliştiriyorsunuz ve oyuncuları temsil eden bir Oyuncu sınıfı oluşturduk. Bu sınıf, move adlı bir genel yöntem içeriyor; bu, oyunun hangi kare işaretlemek istediğini belirten bir int döndürüyor.
İşleri basit tutmak için, taşıma yöntemi körü körüne tahtadaki ilk boş kareyi hareket olarak seçer. Tabii ki, Tic-Tac-Toe'de kazanmak için korkunç bir strateji. Bu nedenle, sınıfın BetterPlayer adında daha iyi bir sürümünü oluşturmaya karar verdiniz. BetterPlayer sınıfını Player sınıfının bir alt sınıfı olarak uygularsınız, ancak BetterPlayer sınıfı Player sınıfından daha akıllı hamle yapmasını sağlamak için move yöntemini geçersiz kılarsınız.
Tic-Tac-Toe uygulamasının ana sınıfında (TicTacToe olarak anılacaktır) MakeAMove adında bir yöntem yazmışsınızdır. MakeAMove yöntemi şu şekilde görünür:
public void MakeAMove (Oyuncu p) {int i = p. hareket(); return i;}
MakeAMove yöntemini şöyle arayabilirsiniz:
int m = MakeAMove (new Player ());
Bu durumda, MakeAMove yöntemi tahtadaki ilk boş kareyi döndürür.
Ama böyle çağırdığınızı varsayalım:
int m = MakeAMove (new BetterPlayer ());
Bu durumda, MakeAMove yöntemi daha iyi düşünülmüş bir hareket döndürür çünkü BetterPlayer sınıfı oyuncunun bir sonraki hareketini belirlemek için daha iyi bir algoritma kullanır.