"is-a" İlişkisi
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 25 / 56.
"is-a" (bir ...-dır) ilişkisi, kalıtımın ne zaman mantıklı olduğunu belirlemek için kullanılan basit bir testtir. Eğer "X bir Y'dir" diyebiliyorsanız ve bu kulağa doğru geliyorsa, o zaman X muhtemelen Y'den kalıtım almalıdır.
Doğru (Kalıtım Kullanın):
- "Bir Köpek bir Hayvan dır" →
class Dog extends Animal
- "Bir Araba bir Araçtır" →
class Car extends Vehicle
- "Bir Ders Kitabı bir Kitaptır" →
class Textbook extends Book
Yanlış (Kalıtım Kullanmayın):
- "Bir Sürücü bir Arabadır" → Hayır, bir sürücü bir araba kullanır
- "Bir Tekerlek bir Arabadır" → Hayır, bir tekerlek bir arabanın parçasıdır
- "Bir Öğrenci bir Sınıf is a" → Hayır, bir öğrenci bir sınıfın içindedir
Örneğin, iki nesneyi ele alalım:
// Temel sınıf - hepsinin ne OLDUĞU
class Book {
constructor(title, author, pages) {
this.title = title;
this.author = author;
this.pages = pages;
}
read() {
console.log(`Reading ${this.title} by ${this.author}`);
}
}
// Bir Novel bir Book'tur (doğru kalıtım)
class Novel extends Book {
constructor(title, author, pages, genre) {
super(title, author, pages);
this.genre = genre;
}
}
// Sınıfların kullanımı
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read(); // "Reading 1984 by George Orwell" - Book sınıfından miras alındı
Görev
Size bir ElectronicDevice sınıfı ve bir Smartphone sınıfı veriliyor. Bir Smartphone, ek özelliklere sahip bir ElectronicDevice türüdür. Göreviniz, markası "Samsung" ve modeli “Galaxy S23” olan bir `myPhone` nesnesi oluşturmaktır.
Kopya kağıdı
"is-a" (bir ...-dır) ilişkisi, kalıtımın ne zaman mantıklı olduğunu belirlemek için yapılan bir testtir. Eğer "X bir Y'dir" diyebiliyorsanız ve bu kulağa doğru geliyorsa, o zaman X, Y'den kalıtım almalıdır.
Doğru örnekler (kalıtım kullanın):
- "Köpek bir Hayvan'dır" →
class Dog extends Animal - "Araba bir Taşıt'tır" →
class Car extends Vehicle - "Ders Kitabı bir Kitap'tır" →
class Textbook extends Book
Yanlış örnekler (kalıtım kullanmayın):
- "Sürücü bir Araba'dır" → Hayır, sürücü arabayı kullanır
- "Tekerlek bir Araba'dır" → Hayır, tekerlek arabanın bir parçasıdır
- "Öğrenci bir Sınıf'tır" → Hayır, öğrenci sınıfın içindedir
Örnek:
// Base class
class Book {
constructor(title, author, pages) {
this.title = title;
this.author = author;
this.pages = pages;
}
read() {
console.log(`Reading ${this.title} by ${this.author}`);
}
}
// A Novel IS-A Book (correct inheritance)
class Novel extends Book {
constructor(title, author, pages, genre) {
super(title, author, pages);
this.genre = genre;
}
}
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read(); // "Reading 1984 by George Orwell" - inherited from Book
Kendin dene
import { ElectronicDevice } from './electronicDevice.js';
import { Smartphone } from './smartphone.js';
// TODO: Markası "Samsung" ve modeli “Galaxy S23” olan bir `myPhone` nesnesi oluşturun.
// Test kodu - değiştirmeyin
console.log(myPhone.turnOn()); // Çıktı "Samsung Galaxy S23 is now ON" olmalı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ı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 Çekme9Statik 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 Sistemi