Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Mantošana / Exercises / Mantots atribūts

Risinājums: Mantots atribūts

Šeit ir iespējams risinājums uzdevumam.

Kods

class Vehicle {
    has $.wheels;
}

class Bike is Vehicle {
    has $.wheels = 2;
}

class Car is Vehicle {
    has $.wheels = 4;
}

say Bike.new.wheels;
say Car.new.wheels;

🦋 Atrodiet programmu failā inherited-attribute.raku.

Izvade

2
4

Komentāri

  1. Bike un Car abi manto no Vehicle atribūtu wheels (un tā piekļuves metodi). Neviens no tiem atribūtu nedeklarē no jauna — tie mantotajam tikai dod noklusēto vērtību, attiecīgi 2 un 4.

  2. Tā kā noklusējums ir iecepts katrā klasē, objektus var izveidot ar vienkāršu Bike.new un Car.new, un mantotā piekļuves metode nolasa pareizo riteņu skaitu.

  3. Vērtību joprojām var padot arī skaidri, piemēram, Car.new(wheels => 3), un skaidri norādīts arguments pārraksta noklusējumu. Taču, tā kā velosipēdam vai automašīnai visdrīzāk jau ir tam ierastais riteņu skaits, noklusējumi patur biežāko gadījumu vienkāršu, atstājot vietu retajiem izņēmumiem.

Kursa navigācija

← Mantots atribūts   |   Lomas →