Merhaba Arkadaslar,
Bu yazimda Java da Overriding kavramindan bahsedecegim .Javada bir sinifi kalittigimizda (extends) ust sinifta bulunan bir metodu alt sinifta ezebiliriz/override. Hatirlayacagimiz gibi final olarak tanimlanan metotlar override edilemezler.
Test sinifimiz uzerinde devam edelim..
TestAnimals.java
class Animal { int height=15; static int size=10; public void eat() { System.out.println("Animal-Eat"); } static void breathe() { System.out.println("Animal- Breath"); } } class Bird extends Animal { int height=3; static int size=5; @Override public void eat() { System.out.println("Bird-Eat"); } static void breathe() { System.out.println("Bird- Breath"); } public void fly() { System.out.println("Bird-fly"); } } public class TestAnimals { public static void main(String[] args) { Animal a = new Animal(); Animal b = new Bird(); Bird c = new Bird(); //Bird d = new Animal(); a.eat(); b.eat(); c.eat(); a.breathe(); b.breathe(); c.breathe(); //a.fly(); //b.fly(); c.fly(); System.out.println(a.height + " "+ a.size); System.out.println(b.height + " "+ b.size); System.out.println(c.height + " "+ c.size); } }
- Bird sinifi Animal sinifini kalitmaktadir ve eat() metodunu ezmektedir. @Override notasyonunu kullanabiliriz.
- static metotlar override edilmezler, tekrar tanimlanirlar /redefined.