Inheritance
(miras alma, kalıtım), bir nesnenin özelliklerinin farklı nesneler tarafından
da kullanılabilmesine olanak sağlayan Object Oriented Programming özelliğidir.
Yazılan
bir sınıf bir başka sınıf tarafından miras alınabilir.
Bu
işlem yapıldığı zaman temel alınan sınıfın tüm özellikleri yeni sınıfa
aktarılır.
Superclass:
Özellikleri kalıtım yoluyla diğer alt class’lara aktarılan class’tır.
Subclass:
Superclass’ın özellikleri alan sınıftır.
Inheritance
için extends anahtar sözcüğü
kullanılır.
class Super{
.....
}
class Sub extends Super{
.....
}
- Superclass içerisinde private
olarak tanımlanan metodlar subclass tarafından inherit edilemez.
- Superclass içerisinde tanımlanan
bir metod subclass içerisinde override edilebilir.
- Superclass içerisinde tanımlanan
bir field, sublass içerisinde de tanımlanırsa bu field hiding edilir.
- Subclass içerisinde farklı metodlar
ve alanlar tanımlanabilir.
- Superclass içerisinde tanımlanan
static bir metod subclass içerisinde kullanılırsa hiding edilir.
- Superclass içerisindeki bir metod
veya field a super anahtar kelimesiyle erişilebilir.
Ø Calculation superclasstır.
public class Calculation {
int sonuc;
public void addition(int x, int y) {
sonuc = x + y;
System.out.println("Toplam:" + sonuc);
}
public void Substraction(int x, int y) {
sonuc = x - y;
System.out.println("Fark:" + sonuc);
}
}
Ø My_Calculation subclasstır.
public class My_Calculation extends Calculation {
public void carpma(int x, int y) {
sonuc = x * y;
System.out.println("Çarpım:" + sonuc);
}
@Override
public void toplama(int x, int y) {
sonuc = x + y;
System.out.println("(Override
method) Toplam:" + sonuc);
}
public void deneme() {
toplama(10,
5);//
bu classın methodunu çağırır
this.toplama(10, 5);// bu classın
methodunu çağırır
super.toplama(10, 5);// superclass methodunu
çağırır
cikarma(10,
5);//
superclass methodunu çağırır
carpma(10,
5);//
bu classın methodunu çağırır
}
}
Ø Test
class
public class CalculationTest
{
public static void main(String[] args) {
My_Calculation
test = new
My_Calculation();
test.deneme();
}
}
Çıktı:
(Override method) Toplam:15
(Override method) Toplam:15
Toplam:15
Fark:5
Çarpım:50

Hiç yorum yok:
Yorum Gönder