Scala中Traits和抽象类的区别。
Traits
Traits与Java中的接口相似,并且使用trait关键字创建。
抽象类
抽象类类似于Java中的抽象类,并使用abstract关键字创建。
示例
以下是Scala中的程序,用于显示特性和抽象类的用法。
trait SampleTrait {
//抽象方法
def test
//非抽象方法
def tutorials() {
println("Traits tutorials")
}
}
abstract class SampleAbstractClass {
//抽象方法
def test
//非抽象方法
def tutorials() {
println("Abstract Class tutorial")
}
}
class Tester extends SampleAbstractClass {
def test() {
println("Welcome to Nhooo")
}
}
class TraitTester extends SampleTrait {
def test() {
println("Welcome to Nhooo")
}
}
object HelloWorld {
// Main method
def main(args: Array[String]) {
var obj = new Tester()
obj.tutorials()
obj.test()
var obj1 = new TraitTester()
obj1.tutorials()
obj1.test()
}
}输出结果
Abstract Class tutorial Welcome to Nhooo Traits tutorials Welcome to Nhooo
以下是Scala中Traits和AbstractClass之间的一些重要区别。
抽象类仅支持单继承。
Trait可以添加到对象实例中。
抽象类可以具有参数化的构造函数。
如果特性没有任何实现,则它们可以与Java互操作。
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短