Java Dersleri: Polimorfizm ve Arayüzler

Merhaba arkadaşlar bu dersimizle beraber Java ile Nesne Tabanlı Programlama konularını tamamlamış olacağız ve ileri java programlama konularına geçiş yapacağız. Bu dersimizde sırasıyla polimorfizm ve arayüzler konularını inceleyeceğiz.

Polimorfizm

Polimorfizmi tanımlamamız gerekirse, aynı nesne üzerinden farklı davranışlar elde etme ve o nesneyi farklı biçimlere sokma gibi bir tanım yapmamız söz konusu olabilir.

Örneğin bir Otomobil sınıfımız var ve bu Otomobil sınıfını miras alan Minibus ve BinekOtomobil adlı 2 adet alt sınıfımız var. Biz Otomobil nesnesi üzerinden Bu alt sınıfların davranışlarını elde edebiliriz.

Otomobil otomobil1=new Minibus(“Ford Transit”,”2015″,16);
Otomobil otomobil2=new BinekOtomobil(“Toyota Yaris”,”2013″,4);

burada gördüğümüz tipik bir polimorfizm yani çok biçimlilik örneğidir. Bu şekilde aynı nesne ile farklı sınıfların nesnelerini elde edebiliriz.

Arayüzler

Java ile C++ dilinde olan çoklu kalıtım özelliği yoktur.Örneğin bir bir köpek hem evcil haycan hem de sokak hayvanları sınıfına ait olabilir. Java’da ise 2 sınıfı miras almak mümkün değildir. Peki ne yapacağız?

Java bize Arayüz sınıflarını sunmaktadır. Bu sınıflarda normal methodlar tanımlanamaz ve bu sınıflar %100 soyut sınıflardır. Dolayısıyla abstract methodlar bulunur.

Bu sınıfı implemente eden sınıf ise bu methodları override edip içini doldurur.

class kopek extends sokakhayvanlari implements evcilhayvanlar
{

}

burada da gördüğümüz gibi köpek sınıfı hem sokakhayvanlarini miras olarak almış hem de evcil hayvanları implemente etmiş ve bu şekilde çoklu kalıtım özelliği sağlanmış oldu.

Benzer bir örnek arabalar için de kullanılabilir.Bir binek araç sınıfı hem otomobil sınıfını miras alabilir hem de spor otomobil arayüzünü implemente edebilir ve bu şekilde iki sınıfında methodlarını ve değerlerini miras olarak almış olur.

Arkadaşlar bu dersle beraber Java ile Nesne Yönelimli Programlama Konularını tamamlamış oluyoruz. 

Bundan sonra ise ileri java programlama konularını inceleyeceğiz.

Leave a Reply

Your email address will not be published. Required fields are marked *