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 官宣新年祝福语简短