Nihal's Blog

Posts Tagged ‘kalıtım

Soyut Sınıfların ve Yordamların Özellikleri

Soyut sınıflar birleştirici rol oynarlar. Eğer bir işlem farklı değerlerle aynı işi yapıyorsa soyut sınıf içerisinde bu işlemin gerçekleştiği yordamı oluşturabiliriz.

Soyut sınıflar new() ile oluşturulamazlar.

Soyut sınıfların içerisinde en az 1 tane soyut yordam olmalıdır. Soyut yordamların içi boş olur. Yani hiçbir iş yapmazlar.

Ayrıca soyut sınıfların içerisinde soyut olmayan iş yapan yordamlar da olabilir.

Soyut yordamdan türemiş sınıflar soyut sınıfın içindeki soyut yordamı iptal etmek zorundalar. Ama soyut yordamın içinde soyut olmayan yordamları türeyen sınıflar iptal etmek zorunda değiller. Yazının devamını oku »

Bir önceki yazımda yukarı çevrimi (upcasting) anlatmıştım. Aşağıya çevrim (downcasting) yukarı çevrim (upcasting) işleminin tam tersidir.

Downcasting’in aksine upcasting güvenlidir. Çünkü daha özel bir tipten daha genel bir tipe çevrim olur ve upcasting işleminde özel bir ifade yazmaya gerek yoktur. Ama downcasting daha genel tipten daha özel bir tipe çevrim yapıldığından güvenli değildir.

Basit bir uygulama yapalım. Upcasting işlemini anlatırken yaptığım uygulamaya ilaveler yaptım.

Her sınıf Object sınıfından türer. Papagan sınıfını Object sınıf tipine çevirelim. Yazının devamını oku »

Java’da kalıtımın ne olduğunu ve nasıl kullanıldığını önceki yazılarımda anlatmıştım. Şimdi Upcasting’i inceleyelim.

Basit bir uygulama yapalım. 3 tane sınıf oluşturalım. Papagan sınıfı Kus sınıfından türesin, Kus sınıfı da Hayvan sınıfından türesin. Her papağan bir kuştur. Hayvan sınıfında Goster yordamında parametre Kus sınıfı tipinde ama oluşturulan Papagan nesnesinin referansı ile de bu yordamı çağırabiliyoruz. Böylece Papagan sınıfı türediği Kus sınıfına çevrilmiş oluyor.

Upcasting güvenlidir. Çünkü daha özel bir tipten daha genel bir tipe çevriliyor. Yukarı çevrim işleminde özel bir ifade yazmaya gerek yoktur ama aşağıya çevrimde (downcasting) gereklidir.

1 Yazının devamını oku »

Bir sınıftan diğer bir sınıfın türetilmesine kalıtım denir. Türetilen sınıf, türediği sınıfın private özellikleri dışındaki diğer özelliklerine yani alanlara ve yordamlara sahip olur.

Basit olarak bir uygulama yapalım. Papagan diye bir sınıf oluşturalım. Her papağan aynı zamanda bir kuş olduğu için Kus adında bir sınıf oluşturalım ve Papagan sınıfını extends ifadesini kullanarak Kus sınıfından türetelim. Böylece Papagan sınıfı Kus sınıfının private özellikleri dışındaki diğer özelliklerine sahip olur. Kus sınıfında tanımladığımız kanatSayısı ve ayakSayısı alanlarını Papagan sınıfından erişelim.

Aslında oluşturulan tüm sınıflar Object sınıfından türer. Ama Java’da çoklu kalıtım yoktur. Bu yüzden  Kus sınıfı otomatik olarak Object sınıfından türemiş olmasına rağmen Papagan sınıfı sadece Kus sınıfından türemiştir.

1

Ekran çıktısı

2 Yazının devamını oku »


Enter your email address to follow this blog and receive notifications of new posts by email.

Follow Nihal's Blog on WordPress.com