Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos

Herencia

La herencia permite que una clase se construya sobre otra. Una clase declarada con is después de su nombre hereda los atributos y los métodos de la clase que nombra: su clase padre (o base).

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

class Dog is Animal {
}

Dog is Animal significa que un Dog es una clase de Animal. Sin escribir nada nuevo, Dog ya tiene el atributo name y el método speak de Animal:

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

Un objeto Dog también se reconoce como Animal:

say Dog.new ~~ Animal; # True

El smart-match ~~ contra un tipo es verdadero cuando el objeto es de ese tipo o hereda de él. El tema siguiente muestra cómo una clase hija puede sustituir un método heredado por una versión propia.

También en esta sección

Práctica

Resuelve 1 cuestionario sobre el contenido de esta sección.

Ejercicios

Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.

  1. Empleados y roles
  2. Una figura y un cuadrado
  3. Un atributo heredado

Quiz — Subrutinas y métodos   |   Sobrescribir métodos