5.12. Przedrostek super
W kodzie klasy można odwoływać się do składowych nadklasy poprzez przedrostek super. W przypadku klas definiowanych wewnątrz innych klas, ten przedrostek może być poprzedzony nazwą klasy otaczającej.
Plik Super1.scala: class Hi1 { def greet = println("Hi1") } class Hi2 { def greet = println("Hi2") } class Hi3 extends Hi1 { override def greet = println("Hi3") class Hi4 extends Hi2 { override def greet = println("Hi4") def talk = { this.greet Hi3.this.greet super.greet Hi3.super.greet } } }
Przykłady odwołań z przedrostkami this i super znajdują się w definicji metody talk z klasy Hi4, zdefiniowanej w pliku Super1.scala. Poniżej pokazane jest działanie metody talk.
scala> val a = new Hi3 a: Hi3 = Hi3@c4ddae scala> val b = new a.Hi4 b: a.Hi4 = Hi3$Hi4@b81efb scala> b.talk Hi4 Hi3 Hi2 Hi1