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 送给学长毕业祝福语简短