Solución

@maiquez·hace 5dTypeScript
solution.tsTypeScript
from abc import ABC, abstractmethod


class Animal(ABC):
    # Declara aquí el método abstracto que cada subclase debe implementar
    @abstractmethod 
    def sound(self) -> str: ...     

    def describe(self) -> str:
        # Método concreto compartido: usa sound() para construir la descripción
        return f"{type(self).__name__} hace: {self.sound()}"


class Dog(Animal):
    def sound(self) -> str:
        # Retorna el sonido del perro
        return "Guau!"


class Cat(Animal):
    def sound(self) -> str:
        # Retorna el sonido del gato
        return "Miau!"


def test_abstract_class(animal_type: str, **kwargs) -> dict:
    # Crea Dog o Cat según animal_type y retorna {"sound": ..., "description": ...}
    if animal_type == "dog":
        animal = Dog()
    elif animal_type == "cat":
        animal = Cat()
    return {"sound": animal.sound(), "description": animal.describe()}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.