- Yöntemi geçersiz kılmadan sorunu anlama
- Statik yöntemi geçersiz kılabilir miyiz?
- Yöntemin aşırı yüklenmesi ve yöntemin geçersiz kılınması
Eğer alt sınıf (alt sınıf), ana sınıfta bildirilenle aynı yönteme sahipse, buna şu ad verilir: Java'da yöntem geçersiz kılma .
Başka bir deyişle, bir alt sınıf, üst sınıfından biri tarafından bildirilen yöntemin spesifik uygulamasını sağlıyorsa, buna yöntem geçersiz kılma adı verilir.
Java Yönteminin Geçersiz Kılmasının Kullanımı
- Yöntem geçersiz kılma, üst sınıfı tarafından zaten sağlanan bir yöntemin spesifik uygulamasını sağlamak için kullanılır.
- Çalışma zamanı polimorfizmi için yöntem geçersiz kılma kullanılır
Java Yöntemini Geçersiz Kılma Kuralları
- Yöntemin ana sınıftakiyle aynı ada sahip olması gerekir
- Yöntemin ana sınıftakiyle aynı parametreye sahip olması gerekir.
- IS-A ilişkisinin (miras) olması gerekir.
Yöntemi geçersiz kılmadan sorunu anlama
Metot geçersiz kılmayı kullanmazsak programda karşılaşabileceğimiz sorunu anlayalım.
//Java Program to demonstrate why we need method overriding //Here, we are calling the method of parent class with child //class object. //Creating a parent class class Vehicle{ void run(){System.out.println('Vehicle is running');} } //Creating a child class class Bike extends Vehicle{ public static void main(String args[]){ //creating an instance of child class Bike obj = new Bike(); //calling the method with child class instance obj.run(); } }Şimdi Test Edin
Çıktı:
powershell yöneticisi
Vehicle is running
Sorun şu ki, alt sınıfta run() yönteminin belirli bir uygulamasını sağlamam gerekiyor, bu yüzden yöntem geçersiz kılmayı kullanıyoruz.
Yöntem geçersiz kılma örneği
Bu örnekte, alt sınıfta run yöntemini ana sınıfta tanımlandığı gibi tanımladık ancak bunun bazı özel uygulamaları var. Metodun adı ve parametresi aynı olup, sınıflar arasında IS-A ilişkisi vardır, dolayısıyla metot geçersiz kılma vardır.
//Java Program to illustrate the use of Java Method Overriding //Creating a parent class. class Vehicle{ //defining a method void run(){System.out.println('Vehicle is running');} } //Creating a child class class Bike2 extends Vehicle{ //defining the same method as in the parent class void run(){System.out.println('Bike is running safely');} public static void main(String args[]){ Bike2 obj = new Bike2();//creating object obj.run();//calling method } }Şimdi Test Edin
Çıktı:
Bike is running safely
Gerçek bir Java Yöntemi Geçersiz Kılma örneği
Bankanın faiz oranını almaya yönelik işlevsellik sağlayan bir sınıf olduğu bir senaryoyu düşünün. Ancak faiz oranları bankalara göre değişmektedir. Örneğin SBI, ICICI ve AXIS bankaları %8, %7 ve %9 faiz oranı sağlayabiliyor.
Sonraki sayfalarda öğreneceğimiz Çalışma Zamanı Polimorfizminde çoğunlukla Java yöntemi geçersiz kılma kullanılmaktadır.
//Java Program to demonstrate the real scenario of Java Method Overriding //where three classes are overriding the method of a parent class. //Creating a parent class. class Bank{ int getRateOfInterest(){return 0;} } //Creating child classes. class SBI extends Bank{ int getRateOfInterest(){return 8;} } class ICICI extends Bank{ int getRateOfInterest(){return 7;} } class AXIS extends Bank{ int getRateOfInterest(){return 9;} } //Test class to create objects and call the methods class Test2{ public static void main(String args[]){ SBI s=new SBI(); ICICI i=new ICICI(); AXIS a=new AXIS(); System.out.println('SBI Rate of Interest: '+s.getRateOfInterest()); System.out.println('ICICI Rate of Interest: '+i.getRateOfInterest()); System.out.println('AXIS Rate of Interest: '+a.getRateOfInterest()); } }Şimdi Test Edin
Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9
Statik yöntemi geçersiz kılabilir miyiz?
Hayır, statik bir yöntem geçersiz kılınamaz. Çalışma zamanı polimorfizmi ile kanıtlanabilir, bu yüzden bunu daha sonra öğreneceğiz.
Neden statik yöntemi geçersiz kılamıyoruz?
Bunun nedeni, statik yöntemin sınıfa bağlı olması, örnek yöntemin ise bir nesneye bağlı olmasıdır. Statik sınıf alanına aittir ve bir örnek yığın alanına aittir.
Java ana yöntemini geçersiz kılabilir miyiz?
Hayır, çünkü main statik bir yöntemdir.
css orta düğmesi
Java'da Yöntem Aşırı Yüklemesi ve Yöntem Geçersiz Kılma arasındaki fark
Yöntem aşırı yükleme ve geçersiz kılma arasındaki fark için beni tıklayın
Yöntem Geçersiz Kılma hakkında daha fazla konu (Yeni Başlayanlar İçin Değil)
Erişim Değiştiriciyle Yöntemi Geçersiz KılmaErişim değiştiriciyle yöntemin geçersiz kılınması kavramını görelim.
Yöntem Geçersiz Kılma ile İstisna İşlemeİstisna yönetimiyle geçersiz kılma yöntemi kavramını görelim.