Çok Biçimlilik Nedir?
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 35 / 56.
Polimorfizm, farklı sınıflardaki nesnelerin aynı yönteme farklı şekillerde yanıt vermesini sağlayan nesne yönelimli programlamanın temel bir ilkesidir.
JavaScript'te çok biçimlilik en yaygın olarak alt sınıfların üst sınıflardaki yöntemleri geçersiz kılmasıyla görülür.
Basit bir üst sınıfı speak() metoduyla oluşturalım:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a sound`;
}
}Şimdi, Animal sınıfını genişleten bir alt sınıf oluşturalım:
class Dog extends Animal {
speak() {
return `${this.name} barks`;
}
}İşte başka bir alt sınıf:
class Cat extends Animal {
speak() {
return `${this.name} meows`;
}
}Her alt sınıf speak() yöntemini farklı şekilde uygular. İşte polimorfizm iş başında!
Artık farklı nesneler oluşturabilir ve her biri üzerinde aynı method'u çağırabiliriz:
const animal = new Animal("Some animal");
const dog = new Dog("Rex");
const cat = new Cat("Whiskers");
console.log(animal.speak()); // Some animal ses çıkarır
console.log(dog.speak()); // Rex havlar
console.log(cat.speak()); // Whiskers miyavlarHer üç nesne de speak() yöntemine yanıt verir, ancak her biri bunu kendi tarzında yapar.
Görev
Notification adlı bir üst sınıfa ve iki alt sınıfa sahip bir bildirim sisteminiz var. Göreviniz, farklı uygulamalara sahip send(message) metodunu her alt sınıfa eklemektir.
EmailNotificationsınıfında metot şu dizeyi döndürmelidir: "Sending '(message)' via Email"SMSNotificationsınıfında metot şu dizeyi döndürmelidir: "Sending '(message)' via SMS"
Kendin dene
import { EmailNotification } from './email-notification.js';
import { SMSNotification } from './sms-notification.js';
// Test kodu - değiştirmeyin
const email = new EmailNotification();
const sms = new SMSNotification();
console.log(email.send("Hello!")); // EmailNotification'ın send() metodunu kullanmalı
console.log(sms.send("Hello!")); // SMSNotification'ın send() metodunu kullanmalıBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesneler ve this Anahtar Kelimesi
Hızlı Tekrar: NesnelerNesnelere Metot Eklemethis Anahtar Kelimesini AnlamakYapıcı Fonksiyonlarnew Anahtar KelimesiGenel Tekrar Uygulaması7Kalıtım ve extends Anahtar Kelimesi
Kalıtım"is-a" İlişkisiextends Anahtar Kelimesisuper() MetoduÖzellikleri ve Metotları DevralmaÖzet Meydan Okuması10Çok Biçimlilik
Çok Biçimlilik Nedir?Kalıtılan Metotları Geçersiz Kılmasuper KullanımıÖzet Meydan Okuması2Kodu Düzenleme
Modüller Nedir?export ile Dışa Aktarmaimport ile İçe AktarmaVarsayılan ve Adlandırılmış Dışa Aktarmalar8OOP Kodunu Düzenleme
Sınıfları Modüller Halinde Düzenleme6Proje: Basit Bir Banka Hesabı
BankAccount SınıfıPara Yatırma ve Para ÇekmePrivate Alan Olarak Bakiye9Statik Metotlar ve Özellikler
Sınıf Düzeyi ve Örnek DüzeyiStatik ÖzelliklerStatik Yardımcı MetotlarÖzet Meydan Okuma12Getter ve Setter'lar
get ve set Anahtar KelimeleriHesaplanmış ÖzelliklerDoğrulama ve Yan EtkilerÖzet Meydan Okuması15Final Meydan Okumaları
Oyun Karakteri OluşturucuE-ticaret Ürün SistemiÜniversite Yönetim SistemiAkıllı Ev Cihaz SistemiKendi başına pratik yap: Online JavaScript derleyicisi