Solución
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