Menu
Coddy logo textTech

"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ı
challenge icon

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ı
quiz iconKendini test et

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