Polimorfizme giriş

Java ile Nesne Yönelimli Programlamaya Giriş

Sani Yusuf

Lead Software Engineering Content Developer

Polimorfizmi göstermek

  • Polimorfizm, Nesne Yönelimli Programlamada (OOP) nesnelerin birden fazla biçimde var olmasını sağlar
  • Sınıf kalıtımını gösterir

  // Soyut Car sınıfı
  abstract class Car {

    // Soyut drive yöntemi
    abstract void drive(); 
    // Kod uygulaması yok 

  }

  // Toyota sınıfı Car sınıfından kalıtım alır
  class Toyota extends Car {  

  }
  // Tesla sınıfı Car sınıfından kalıtım alır
  class Tesla extends Car {  

  }
  // Lamborghini sınıfı Car sınıfından kalıtım alır
  class Lamborghini extends Car {          

  }
Java ile Nesne Yönelimli Programlamaya Giriş

Yöntemleri geçersiz kılma

  • @Override anahtar sözcüğü, özel yöntem uygulamaları yazmanıza olanak tanır
  // Soyut Car sınıfı
  abstract class Car {

    // Soyut drive yöntemi
    abstract void drive(); 
    // Kod uygulaması yok 

  }


 class Toyota extends Car {  
   @Override // Geçersiz kılmak için kullanılır
    void drive() {
      // Toyota'ya özgü uygulama kodu
    }  
 }
 class Tesla extends Car {   
   @Override
    void drive() {
      // Tesla'ya özgü uygulama kodu
    } 
 }
 class Lamborghini extends Car {  
   @Override
    void drive() {
      // Lamborghini'ye özgü uygulama kodu
    }   
 }
Java ile Nesne Yönelimli Programlamaya Giriş

Arayüz yöntemlerini geçersiz kılma


  // ElectricCar arayüzü
  interface ElectricCar {

    abstract void charge(); 
    // Kod uygulaması yok 

  }


  • Arayüz yöntemlerinde @Override kullanılması önerilir

  // Tesla sınıfı 
  // ElectricCar arayüzünü uygular
  class Tesla implements ElectricCar {

    // charge yöntemi uygulanmalıdır
    @Override
    void charge(){
      // Tesla'ya özgü şarj uygulaması
      // Arayüz ile seçmeli kalıtım
    }          
  }













Java ile Nesne Yönelimli Programlamaya Giriş

Yöntemleri aşırı yükleme

  • Aşırı yükleme, aynı adda yöntemlerin farklı uygulamalara sahip olmasına izin verir

  // Toyota sınıfı 
  class Toyota {   

    void drive() {
      // drive yönteminin ilk uygulaması
    }

// Aşırı yüklenmiş drive yöntemi void drive(int topSpeed) { // İkinci drive uygulaması } }
Java ile Nesne Yönelimli Programlamaya Giriş

Kurucuyu aşırı yükleme

  • Kurucular (constructor) aynı sınıfta birden fazla olacak şekilde aşırı yüklenebilir
  // Honda sınıfı
  class Honda {
    // İlk kurucu
    public Honda(String color,
                 String model) {

    }

// İkinci kurucu public Honda(String color, String model, String licensePlate) { } }

  public class Main {  
    public static void main(
      String[] args) {

      // İlk kurucu kullanımı
      Honda hondaOne = 
        new Honda("Red", "Accord");


// İkinci kurucu kullanımı Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Java ile Nesne Yönelimli Programlamaya Giriş

Hadi pratik yapalım!

Java ile Nesne Yönelimli Programlamaya Giriş

Preparing Video For Download...