Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj

Heredo

Heredo permesas al unu klaso konstrui sur alia. Klaso deklarita per is post sia nomo heredas la atributojn kaj metodojn de la klaso, kiun ĝi nomas — ĝia patra (aŭ baza) klaso.

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

class Dog is Animal {
}

Dog is Animal signifas, ke Dog estas speco de Animal. Sen skribi ion novan, Dog jam havas la atributon name kaj la metodon speak el Animal:

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

Objekto Dog estas ankaŭ rekonata kiel Animal:

say Dog.new ~~ Animal; # True

La saĝa kongruado ~~ kontraŭ tipo estas vera, kiam la objekto estas de tiu tipo aŭ heredas de ĝi. La sekva temo montras, kiel ida klaso povas anstataŭigi hereditan metodon per sia propra versio.

Ankaŭ en ĉi tiu sekcio

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu sekcio.

Ekzercoj

En ĉi tiu sekcio estas 3 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.

  1. Dungitoj kaj roloj
  2. Figuro kaj kvadrato
  3. Heredita atributo

Kursa navigado

Kvizo — Subprogramoj kaj metodoj   |   Superregi metodojn