Scala abstrakten Fall Klasse

Gegeben Card ich möchte in der Lage sein, um die nächsten und vorherigen Cards wenn Sie vorhanden sind.

Die Idee mit der next() und prev() Funktionen ist, dass Sie gibt den nächsten oder vorherigen Suits bzw. Die Reihenfolge der Farben: Hearts, Spades, Diamonds, Clubs.

Weitere Klärung, ich sollte diese

//case class Card(n : Int, s : Suit)

//1. define abstract case class Suit

//2. define abstract case classes RedSuit and BlackSuit

//3. define concrete case classes Hearts, Spades, Diamonds, Clubs

//5. define abstract methods next():Suit and prev():Suit on Suit class

//6. implement the next():Suite and prev():Suit on each of the Hearts, Diamonds,Spades and Clubs classes

//7. implement the next():Card and prev():Card on the Card class

Aber in der ersten Ort, den ich nicht umsetzen können die next() auf Herz Klasse

case class Card(n: Int, s: Suit)

abstract case class Suit{
   type cardsuit <: Suit
   def next(): cardsuit
   def prev(): cardsuit
}

abstract case class RedSuit extends Suit {
   type red <: RedSuit
}

abstract case class BlackSuit extends Suit {
   type black <: BlackSuit
}

case class Hearts extends RedSuit {
   type red = Hearts
   def next(): Spade = ??? //I wanna have Spades hier 
   def prev(): Club = ??? //I wanna have Clubs hier
}
  • Sie sollten nie Abstrakt Fall-Klassen.
  • Können Sie erklären, warum case-Klassen-Vererbung ist so schlecht?
InformationsquelleAutor Saar | 2012-02-20
Schreibe einen Kommentar