Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti

Mantošana

Mantošana ļauj vienai klasei būvēties uz citas. Klase, kas deklarēta ar is aiz sava nosaukuma, manto tās klases atribūtus un metodes, kuru nosauc, — savas vecākklases (jeb bāzes klases).

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

class Dog is Animal {
}

Dog is Animal nozīmē, ka Dog ir Animal paveids. Neko jaunu nerakstot, Dog jau ir atribūts name un metode speak no Animal:

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

Dog objekts tiek atpazīts arī kā Animal:

say Dog.new ~~ Animal; # True

Gudrā sakritība ~~ pret tipu ir patiesa, kad objekts ir šī tipa vai to manto. Nākamais temats parāda, kā bērnklase var aizstāt mantotu metodi ar savu versiju.

Arī šajā sadaļā

Prakse

Jūs gaida 1 viktorīna par šīs sadaļas saturu.

Vingrinājumi

Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Darbinieki un lomas
  2. Figūra un kvadrāts
  3. Mantots atribūts

Kursa navigācija

Viktorīna — Apakšprogrammas un metodes   |   Metožu pārrakstīšana