İçindekiler
Bu, okuyucuyu Spring Framework kullanımına hazırlamak için Java dilinin temel konularını gözden geçirmeye odaklanan bir dizi öğreticinin ikinci bölümüdür. Bu eğitim serisinin ilk bölümünü burada bulabilirsiniz. Bu dersimizde Polimorfizm hakkında konuşacağız.Polimorfizm kelimesi, Yunanca çok anlamına gelen "poli" ve şekil anlamına gelen "morfo" kelimelerinden gelir ve genel olarak ifade ettiği şey budur, yani çoklu formlar alma yeteneği. Nesneye Yönelik Programlamada, birkaç farklı nesne şeklini alabilen değişkenler veya referanslar hakkında konuşuruz.
Artık kavramın nereden geldiğini bildiğinize göre, onu Java diliyle ilişkilendirmeye çalışalım. Önceki derste gördüğümüz gibi, "Miras" kavramı, 2 özel sınıf arasında bir ebeveyn-çocuk ilişkisi kurmamızı sağlar:
Bu örnekte, kalıtım ilişkisi sınıflar arasındadır. Köpek ve sınıf Hayvan, sınıf Kedi ve sınıf Hayvan ve sınıf Atış ve sınıf Hayvanarasında olduğuna dikkat edin Köpek, Kedi Y Atış doğrudan bir ilişki yoktur.
Bu diyagramı temel alarak, Köpek Hayvandır, Kedi Hayvandır ve At Hayvandır diyebiliriz. Java'da ilişkiyi bu şekilde ifade edebildiğinizde, Sınıfın bir değişkeni olduğunu söyleyebiliriz. Hayvan şeklini alabildiği için polimorfiktir. Atış, bir Kedi veya bir Köpek.
Önceki derste ayrıca TÜM sınıfların sınıftan doğrudan veya dolaylı olarak miras aldığını gördük. Nesne, bu durumda diyagramı şöyle tanımlarsak biraz daha eksiksiz olur:
Ve bu, birden fazla seviyeye kadar uzatılabilir (Aslında seviye sınırı JVM'nize bağlı olacaktır, ancak normalde 40'ın üzerindedir) Yani bir Hayvan bir Nesnedir, bir Kedi bir Hayvandır ve bir Kedi (geçişlilik yoluyla) bir Nesnedir.
Java daha sonra bu yapıdaki yüksek noktalardaki sınıf referanslarını, yapı içinde altlarındaki nesneleri işaret etmek için kullanmanıza izin verir. Örneğin:
public static void main (String [] args) {Object o1 = new Object(); Hayvan a1 = yeni Hayvan (); Köpek p = yeni Köpek (); o1 = a1; o1 = p; a1 = p; Nesne o2 = yeni Hayvan (); Nesne o3 = yeni Köpek (); Hayvan a2 = yeni Köpek (); boolean b1 = o1 == o2; boolean b2 = o1 == o3; boolean b3 = o1 == a2; if (b1 || b2 || b3) {Hiçbir Şey Yapma (); }}
Gördüğünüz gibi, bir Animal değişkeninin bir Dog nesnesine başvurabilmesi gibi, bir Object değişkeni bir Animal nesnesine veya bir Dog nesnesine başvurabilir. Bundan türetilen polimorfizm kapasitesi, bir nesneyi tam olarak hangi nesnenin IS olduğunu bilmek zorunda kalmadan manipüle edebilmemizi sağlar, aşağıdaki örnek yöntemi görelim:
public static void doSomething (Hayvan a) {a.getColorDePelo (); }
Bir uygulama bu yöntemi kullandığında parametre ile hangi Hayvanı aldığını bilmiyor, Köpek olabilir, Kedi olabilir, At olabilir veya daha sonra Köstebek, Fil, Mandrill veya başka herhangi bir sınıf olabilir. Hayvan türündedir.
Bu özelliğin anahtarı, programın, özellikle ne tür Animal olduğunu bilmeden belirli alt sınıfların yöntemlerini kullanmasına izin vermesi ve böylece Animal sınıfının gelecekteki uygulamalarına göre önemli düzeyde bir soyutlama sağlamasıdır.
Bir sonraki derste polimorfizm konusuna daha derinlemesine gireceğiz, arayüzlerin ne olduğunu ve arayüzlere odaklı nasıl programlanacağını göreceğiz, bu da aşağıdaki derslerin anlaşılmasına yardımcı olacaktır.
Konu beklediğimden biraz uzadı ama umutsuzluğa kapılmayın! Spring'in nasıl çalıştığını anlamak için Dependency Injection'a başlamadan önce bu kavramları doğru anlamak önemlidir.
Umarım bu eğitimlere her hafta devam ederiz, yorumlarınızı bir dahaki sefere bırakmayı unutmayın!Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.