当前位置: 首页 > 知识库问答 >
问题:

Scala方法中抽象错误的获取

上官鸿朗
2023-03-14

我得到了错误:声音方法不能是抽象的。但是,当我移除“抽象”时,我得到了类狗和猫需要是抽象的。我做错了什么?任务说,狗和猫类应该保持具体。任务在下面。

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())
}

任务:

•重写toString以返回此动物的名称

猫:固有动物;一个构造函数,它将名为name字符串作为值(使用val声明name);Override sound()返回“喵

dog:固有动物;一个构造函数,它以一个名为name的字符串作为值(使用val声明name);重写sound()以返回“woof”

共有1个答案

程博学
2023-03-14

好吧,让我们解决其中的几个问题。

一个名为sound的抽象方法,它不接受任何参数,并返回一个字符串

修饰符abstract仅用于类定义。抽象方法是抽象类中的方法,该方法没有主体,只有名称和类型。

修复toString方法,使其不再是抽象的,并返回正确的结果,您应该可以很好地进行。

 类似资料:
  • 我得到下面的错误,而执行我的测试用例。我已经将TestNg Eclipse插件升级为6.11.0最新版本,并使用所有testng jars文件进行了尝试,没有运气来解决这个问题。 我是否遗漏了任何可以添加项目的内容,或者我该怎么做? 请有人帮助解决此错误: JAVAlang.AbstractMethodError:org。testng。遥远的支持RemoteTestNG6_9_10$Delegat

  • 错误:BodyMassApplet不是抽象的,并且不重写ActionListener公共类中的抽象方法actionPerformed(ActionEvent)BodyMassApplet扩展Applet实现ActionListener 代码:

  • 请帮帮忙!!我一直在到处寻找,但没有得到答案 错误:MainApplication不是抽象的,并且不覆盖抽象方法 环境 android/build.gradle系统 App/build.gradle 我的主应用程序 错误: 任务:app:compileDebugJavaWithJavac C:\Users\user\Downloads\Scripts\kantongin mobile\trader

  • 本文向大家介绍php中的抽象方法和抽象类,包括了php中的抽象方法和抽象类的使用技巧和注意事项,需要的朋友参考一下 1、什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法。所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰。 例如: 2、什么是抽象类? 只要一个类里面

  • 我使用的是Laravel4附带的用户类。我试图存储一个属于用户的新问题,用户需要登录才能创建。当我调用questions controller action store时,我得到以下错误 我读过一些关于PHP中抽象方法的文章,虽然我不完全理解它们,但错误本身给出了问题的两种解决方案,声明实现剩余方法的类抽象。我猜测,由于这是laravel附带的模型类,正确的解决方案不是将其声明更改为抽象,而是实现

  • 问题内容: 这是我的代码,假设可以在按下按钮时更改一些文本:- 用下划线标记,它给我一个错误“类必须声明为抽象或实现抽象方法”。该代码大部分是从互联网上复制的,并且可以正常工作。可能仅是Android Studio错误。我如何使它工作? 问题答案: 必须实现该函数,否则您的类应该是抽象的,以便可以在某些子类中实现您的函数。但是在您的情况下,您犯了一个拼写错误。应该代替;