2012-07-08 3 views
-1

내가 스칼라에서이 작업을 수행하기 위해 노력하고있어,하지만 어떤 이유로도스칼라 상속과 객체 생성

abstract class Room { 
... 
} 

class RoomA1 extends Room { //"not found: type Room" 
//but they're in the same package!!! 
//and if I import it as Eclipse suggests the import declaration will give 
//"Room is not a member of rooms(rooms.type)" 
... 
} 

및 작동하지 않습니다 ... 사람이있는을 위해

var room = new Array[Room](2) 
room(0) = new RoomA1 //gives a type mismatch 
//how can I accomplish this? 
+0

"abstract Class Room"이라고 썼습니다. 그것은 "클래스"가 아니라 "클래스"여야합니다. 댓글이나 프로그램에 오타가 있습니까? – vbezhenar

+0

twas는 오타입니다. – adrianton3

답변

3

코드에 아무 문제가 없습니다.

scala> abstract class Room 
defined class Room 

scala> class RoomA1 extends Room 
defined class RoomA1 

scala> val room = new Array[Room](2) 
room: Array[Room] = Array(null, null) 

scala> room(0) = new RoomA1 

scala> room 
res3: Array[Room] = Array([email protected], null) 

scala> 

문제는 당신이 패키지, 하나, 어떤 파일에 아래 디렉토리에 배치하는 방법에 있어야합니다 : 여기에 증명 REPL의 출력입니다. 이 정보로 질문을 확대해야합니다.

0

동일한 문제 : Room.scala는 Room 패키지에있을 수 있지만 Room.scala 헤더에도이를 선언하는 것을 잊지 마십시오. Java에서는 엄격한 디렉토리 구조를 유지해야하므로이 오류가 발생하지 않습니다.