search icon

Inheritance

NEDARVNING

OOP handler bl.a. om struktur, overskuelighed og genanvendelighed. Derfor kan man oprette klasse af andre klasser. Dette kaldes nedarvning eller på engelsk inheritance.

Når en klasse nedarves fra en anden klasse, så indeholder den nye klasse alle properties og methods, der er public eller protected. Private properties og methods nedarves ikke.

I eksemplet herunder oprettes klassen Product. Den indeholder 1 property og 2 methods. Der bliver også oprettet klassen Clothes, men her skrives der extends Product før den krøllede parantes. Det betyder, at klassen Clothes indeholder samme properties og methods som klassen Product (de, der er public eller protected vel at mærke).

<?php
  class Product {
    public $price;

    public function set_price($newPrice){
      $this->price = $newPrice;
    }

    public function get_price(){
      return $this->price;
    }
  }

  class Clothes extends Product {
    public $size;

    public function set_size($newSize){
      $this->size = $newSize;
    }
  }

  $shirt = new Clothes;
  $shirt->set_price(200);
  $shirt->set_size("L");

I den nye klasse er der tilføjet 1 property (size) og 1 method (set_size). Tanken bag dette er, at alle produkter har en pris, men kun tøj-produkter har en størrelse. Man kunne også extende klassen Product til en anden klasse med navnet Food til produkter, der kan spises. Og klassen Clothes kan videre extendes til en anden klasse.

  • Klasser som andre klasser nedarves fra kaldes super-klasser
  • Klasser, der nedarves fra andre klasser kaldes sub-klasser

Skriv et svar

Verified by MonsterInsights