scala中是否有方法在方法的实现中使用方法 m 重写相同的方法 m ?
这里的例子是我尝试过的(请注意,toUpperCase没有实现):
abstract class Person {
def greet: String
}
class EnglishMan extends Person {
abstract override def greet: String =
{
return "hello"
}
}
trait Angry extends Person {
abstract override def greet: String =
{
return toUpperCase(greet)
}
答案 0 :(得分:0)
这是你想要的吗?
scala> trait Person { def greet: String }
defined trait Person
scala> class EnglishMan extends Person { def greet = "hello" }
defined class EnglishMan
scala> class Angry extends EnglishMan { override def greet = super.greet.toUpperCase }
defined class Angry
scala>
scala> new EnglishMan().greet
res3: String = hello
scala> new Angry().greet
res4: String = HELLO
请注意,trait Person
与此练习完全无关。您可以调用超类的方法(即使覆盖那个方法),但是在同一个范围内不能有2个方法具有相同的名称(这对于编译器来说是不明确的)。