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 生女孩红包简短祝福语