Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten

Overerving

Met overerving kan de ene klasse op de andere voortbouwen. Een klasse die met is achter haar naam gedeclareerd wordt, erft de attributen en methoden van de klasse die ze noemt — haar ouderklasse (of basisklasse).

class Animal {
    has $.name;
    method speak {
        'some sound';
    }
}

class Dog is Animal {
}

Dog is Animal betekent dat een Dog een soort Animal is. Zonder iets nieuws te schrijven heeft Dog al het attribuut name en de methode speak van Animal:

my $rex = Dog.new(name => 'Rex');
say $rex.name;  # Rex
say $rex.speak; # some sound

Een Dog-object wordt ook herkend als een Animal:

say Dog.new ~~ Animal; # True

De smart-match ~~ tegen een type is waar wanneer het object van dat type is of ervan erft. Het volgende onderwerp laat zien hoe een kindklasse een geërfde methode door haar eigen versie kan vervangen.

Ook in deze sectie

Praktijk

Maak de 1 quiz over de inhoud van deze sectie.

Oefeningen

Deze sectie bevat 3 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.

  1. Medewerkers en rollen
  2. Een vorm en een vierkant
  3. Een geërfd attribuut

Cursusnavigatie

Quiz — Subroutines en methoden   |   Methoden overschrijven