📅  最后修改于: 2023-12-03 15:07:49.125000             🧑  作者: Mango
在 Scala 中,调用父类的构造函数需要使用 super
关键字。这个关键字不仅限于在构造函数中使用,也可以在类中的方法里使用。
使用 Scala 构造函数调用父类的构造函数的语法如下:
class Subclass extends Superclass(args) {
// subclass constructor code
}
其中,Subclass
是子类,Superclass
是父类, args
是构造函数的参数列表。
在子类中调用父类的构造函数时,需要将参数传递给父类构造函数。如果父类有多个构造函数,可以使用 super()
调用默认构造函数,或者使用 super(args)
调用指定的构造函数。
class Subclass extends Superclass(args) {
def this() {
this("default value")
}
def this(a: Int) {
this("default value")
}
}
在上面的例子中,Subclass
有一个默认构造函数以及一个接收整数参数的构造函数。它们都调用了父类构造函数,并且都默认传递了一个字符串参数 "default value"。
在 Scala 中,可以使用 super
访问父类的成员方法和成员变量。
class Superclass {
def printMessage(): Unit = {
println("Hello from superclass")
}
}
class Subclass extends Superclass {
override def printMessage(): Unit = {
super.printMessage()
println("Hello from subclass")
}
}
在上面的例子中,Subclass
覆盖了其父类的 printMessage()
方法。super.printMessage()
调用父类的 printMessage()
方法,输出 "Hello from superclass",而 println("Hello from subclass")
输出了 "Hello from subclass"。