Java'da Polimorfizm: Yöntemleri Aşırı Yükleme veya Geçersiz Kılma

Java'da Polimorfizm: Yöntemleri Aşırı Yükleme veya Geçersiz Kılma

Yöntem aşırı yükleme ve geçersiz kılma, Java'nın polimorfizmi gösterdiği iki yoldur. Çok biçimlilik, iki Yunanca sözcüğün birleşiminden gelir: çok anlamına gelen 'poli' ve biçim anlamına gelen 'morf'. Bu nedenle polimorfizm, yöntemlerin birçok biçim almasını sağlar.





Java'da yöntemleri nasıl aşırı yükleyeceğinizi veya geçersiz kılacağınızı öğrenmek için bu kılavuzu izleyin.





Yöntem Aşırı Yüklemesi Nedir?

'Yöntem aşırı yükleme', aynı ada sahip bir sınıfta farklı yöntemler tanımlamayı ifade eder. Yöntemlerin farklı imzaları olmalıdır. Yöntem imzası, bir yöntemin adı ile parametre listesinin birleşimidir. Dönüş türünü içermez.





Derleyici, türlerini, parametre sayısını ve yerleştirildikleri sırayı kontrol ederek hangi yöntemi kullanacağını bilir.

İlgili: Java Programlama Dilinde Kalıtımı Keşfetmek



Yöntem aşırı yüklemesi, derleme zamanı çok biçimliliğini gösterir. Derleme zamanı polimorfizmi, Java derleyicisinin bir nesneyi çalışma zamanında işlevselliğine bağlaması anlamına gelir. Derleyici bunu başarmak için yöntem imzalarını kontrol eder.

Bu tip polimorfizm, statik veya erken bağlanma olarak da bilinir.





Aşağıdaki yöntem aşırı yükleme örneğine bakın:

class Arithmetic{
int cube(int x){
return x*x*x;
}
double cube(double x){
return x*x*x;
}
float cube(float x){
return x*x*x;
}
public static void main(String[] args){
Arithmetic myMultiplication = new Arithmetic();
System.out.println('The cube of 5 is ' + myMultiplication.cube(5));
System.out.println('The cube of 5.0 is ' + myMultiplication.cube(5.0));
System.out.println('The cube of 0.5 is ' + myMultiplication.cube(0.5));
}
}

Çıktı:





The cube of 5 is 125
The cube of 5.0 is 125.0
The cube of 0.5 is 0.125

Yukarıdaki kod, farklı türlerde bir küpü nasıl elde edebileceğinizi gösterir ( int , çift , batmadan yüzmek ) aynı yöntemi kullanarak.

Genel olarak, yöntem aşırı yüklemesi, farklı parametre türleri ile benzer yöntemleri tanımlamak için kullanılır.

Yöntem Geçersiz Kılma Nedir?

Bu, bir alt sınıftaki bir yöntemin farklı bir uygulamasını ifade eder. Yöntem, üst sınıfta önceden tanımlanmış olmalıdır.

Geçersiz kılma yöntemi (yani alt sınıftaki yöntem), üst sınıftakiyle aynı yöntem imzasına sahip olmalıdır. Geçersiz kılma yönteminin dönüş türü, üst sınıftakiyle aynı veya alt tür olabilir.

Geçersiz kılma genellikle bir nesnenin davranışının belirli bir uygulamasını alt sınıfa dahil etmek için kullanılır.

class Account{
public void message() {
System.out.println('
Thank you for opening an account with us!');
}
public static void main(String args[]) {
Account myAccount = new Account();
Savings mySavings = new Savings();
FixedDeposit myFixedDepo = new FixedDeposit();
myAccount.message();
mySavings.message();
myFixedDepo.message();
}
}
class Savings extends Account {
public void message() {
System.out.println('
Thank you for opening a Savings account with us!');
}
}
class FixedDeposit extends Account {
public void message() {
System.out.println('
Thank you for opening a Fixed Deposit account with us!');
}
}

Çıktı:

Thank you for opening an account with us!
Thank you for opening a Savings account with us!
Thank you for opening a Fixed Deposit account with us!

Yukarıdaki örnek, yöntemin nasıl yapıldığını gösterir. İleti() alt sınıflarda geçersiz kılınır tasarruf ve Sabit mevduat . Birikim hesabı olan banka hesabı sahipleri ile Vadeli Mevduat hesabı olan banka hesabı sahipleri için farklı mesajlar gösterilecektir.

İlgili: Java'da Dize Kullanımı Hakkında Bilmeniz Gerekenler

Ayrıca, yöntemi geçersiz kılmanın, çalışma zamanı çok biçimliliğini veya dinamik yöntem gönderimini gösterdiğini belirtmekte fayda var. Bu, çağrılacak yöntemin derleme yerine çalışma zamanında çözüldüğü anlamına gelir.

Bir yöntemin geçersiz kılınmasını önlemek için anahtar kelimeyi kullanın. son .

final void message (){
System.out.println('
Thank you for opening an account with us!');
}

Bir alt sınıf onu geçersiz kılmaya çalıştığında, bir derleme hatası meydana gelir.

İdeal olarak, bir kurucu içinde çağrılan tüm yöntemler son . Bu, alt sınıfların neden olabileceği istenmeyen değişiklikleri önlemek içindir.

Bazen, geçersiz kılma yöntemi içinde geçersiz kılınan bir yönteme erişmeniz gerekebilir. Anahtar kelimeyi kullanabilirsiniz Süper ardından nokta operatörü ( . ) ve böyle bir durumda yöntem adı.

Süper sınıfı düşünün Hayvan .

class Animal{
public void move() {
System.out.println('
I can move.');
}
}

Aşağıda adı verilen bir alt sınıf vardır. Balık , geçersiz kılan hareket() :

class Fish extends Animal {
public void move() {
System.out.println('
I can swim.');
super.move();
}
public static void main(String args[]){
Fish Tilapia = new Fish();
Tilapia.move();
}
}

Çıktı:

elma izle alüminyum vs paslanmaz çelik dayanıklılık
I can swim.
I can move.

Bir yöntemi geçersiz kılarken, kullanılan erişim değiştiricisine de dikkat etmeniz gerekir. Alt sınıftaki değiştirici, temel sınıftakiyle aynı veya daha yüksek görünürlük düzeyine sahip olmalıdır. Örneğin, temel sınıftaki yöntem şu şekilde tanımlanırsa korumalı , o zaman geçersiz kılma yöntemi şunlardan biri olabilir: korumalı veya halka açık .

Polimorfizmli Basit Kod

Yöntemi geçersiz kılma ve aşırı yükleme, kodun basitleştirilmesi için önemlidir ve basit kod, iyi bir uygulamadır.

Niye ya? Grand Central Station'dan daha fazla girişi ve çıkışı olan karmaşık bir kod tabanı hayal edin. Şimdi yıkıcı bir böceğin sıkı çalışmanızı gözlerinizin önünde mahvetmeye başladığını hayal edin. Enfeksiyonun kaynağını izole etmeniz ve bunu hızlı bir şekilde yapmanız gerekir.

İyi şanslar, kodunuzu basitleştirmediniz... Şimdi kriptografi konusunda gerçek bir ders almak üzeresiniz. Etkili veri yapıları kullanmak ve kodu kısaltmak için elinizden geleni yapmak (örneğin DRY'yi akılda tutmak gibi) böyle bir duruma karşı en iyi savunmanızdır.

Java öğrenme listenizde bir sonraki adım dizilerle çalışıyor olmalı. Veri noktalarını toplu olarak depolamak için kullanılan önemli veri yapılarıdır.

Paylaş Paylaş Cıvıldamak E-posta Java'da Dizilerde İşlemler Nasıl Oluşturulur ve Gerçekleştirilir

Java öğrenmek? Dizilerin verilerinizi kolaylıkla işlemesine izin verin.

Sonrakini Oku
İlgili konular
  • Programlama
  • Java
  • Kodlama Eğitimleri
Yazar hakkında Jerome Davidson(22 Makale Yayımlandı)

Jerome, MakeUseOf'ta Personel Yazarıdır. Programlama ve Linux ile ilgili makaleleri kapsar. Aynı zamanda bir kripto meraklısı ve kripto endüstrisini her zaman takip ediyor.

Jerome Davidson'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın