Я получаю ошибку: метод звука не может быть абстрактным.Но когда я удаляю «абстрактный», я получаю, что класс Dog и Cat должен быть абстрактным.Что я делаю неправильно?Задание говорит, что класс Dog и Cat должен оставаться конкретным.Задача приведена ниже.
package inheritance
abstract class Animal(name: String) {
abstract def sound(): String
override def toString(): Animal
}
class Cat(var name: String)
extends Animal(name)
{
override def sound() = {
"meow"
}
}
class Dog(var name: String)
extends Animal(name){
override def sound() = {
"woof"
}
}
object Park{
def animals() = {
List(new Dog("Snoopy"), new Dog("Finn"), new Cat("Garfield"), new
Cat("Morris"))
}
def makeSomeNoise(first :List[Animal]): List[String] = first.map(_.sound())
}
Задача:
Вопрос: [Scala] В пакете с именем «Наследование» создайте абстрактный класс с именем «Animal» и конкретные классы с именем «Cat» и «Собака".
Создание объекта с именем «Park»:
Animal: конструктор, который принимает строку с именем name (не используйте ни val, ни var.
Он будет объявлен вбазовые классы);
Абстрактный метод с именем sound, который не принимает параметров и возвращает строку *. 1014 *
. • Переопределите toString, чтобы вернуть имя этого животного.
Cat: Inherent Animal;Конструктор, который принимает String с именем name в качестве значения (используйте val для объявления имени);Переопределить звук (), чтобы вернуть «мяу
» Собака: врожденное животное;Конструктор, который принимает String с именем name в качестве значения (используйте val для объявления имени);Переопределите sound () для возврата «woof»
Park:
• Метод с именем «animals», который не принимает параметров и возвращает список животных, содержащий
• 2 собаки с именами "Snoopy "и" Finn "
• 2 кошки с именами" Garfield "и" Morris "
• Метод с именем" makeSomeNoise ", который принимает список животных в качестве параметра и возвращает списокстрок, содержащих шумы от каждого животного в списке ввода