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

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.