我是新来的斯卡拉,只是做一些练习; 我想一个很简单的程序,介绍如下:斯卡拉继承与抽象类
abstract class Device(val cds: Array[Char]) {
var codes = Array[Char](cds: _*)
def encrpt(code: Char): Char
var nextDevice: Device
def setNext(next: Device):Unit = {
nextDevice = next
}
}
//compiler error shows here
class Input(codes: Array[Char]) extends Device(codes) {
override def encrpt(code: Char) = code
}
,你可以看到有在第21行编译错误,以下是消息: 类输入需要抽象的,因为在可变nextDevice类型com.me.acm.problem1009.Device类设备不 定义(请注意,变量需要初始化定义)
我非常混乱的错误,我的理解,定义一些变量和一个setter方法在父类中,所以子类ses可以使用它而无需再次定义它。它很简单。
我想我错过了什么。有人可以向我解释并告诉什么是正确的方式?谢谢。
注意你没有明确声明getter和setter,VAR声明是隐式扩展为getter和setter。请参阅[this](http://www.artima.com/pins1ed/stateful-objects.html#18.2)了解具体成员如何发生这种情况,并且[that](http://www.artima.com/pins1ed/ abstract-members.html#20.4)。 – huitseeker