我是新來的斯卡拉,只是做一些練習; 我想一個很簡單的程序,介紹如下:斯卡拉繼承與抽象類
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