44 接口默认方法
Named 中的 label() 自带方法体,实现类只需提供 name() 就能使用它。默认方法通过 this 调用实际实现。
norm
interface Named {
String name()
String label() { return "Task: " + this.name() }
}
class Task implements Named {
String title
String name() { return title }
}
main() {
Named item = Task(title: "Learn Norm")
printLine(item.label())
}预期输出:
text
Task: Learn Norm动手试试:在 Task 中增加 label(),观察调用哪一个方法体。
精确规则:语言参考。