Scala中Traits与抽象类的区别
Scala中的抽象类
Scala中的Abstract类是使用abstract关键字创建的。抽象类中包含抽象方法和非抽象方法。
它们不支持多重继承。
语法:
abstract class class_name{def abstract_mathod
def general_method(){
}
}
示例
abstract class bike{
def speed
def display()
{
println("This is my new Bike") ;
}
}
class ninja400 extends bike
{
def speed()
{
println("Top Speed is 178 Kmph");
}
}
object myObject
{
def main(args: Array[String])
{
var obj = new ninja400();
obj.display() ;
obj.speed() ;
}
}
输出结果
This is my new BikeTop Speed is 178 Kmph
Scala 特质
Scala中的特质是使用trait关键字创建的。特性包含抽象和非抽象的方法和字段。这些类似于Java中的接口。它们还允许多重继承,并且与Java中的继承者相比,它们更强大。
语法:
trait trait_name{}
示例
trait bike{
def speed
def display()
{
println("This is my new Bike") ;
}
}
class ninja400 extends bike
{
def speed()
{
println("Top Speed is 178 Kmph");
}
}
object myObject
{
def main(args: Array[String])
{
var obj = new ninja400();
obj.display() ;
obj.speed() ;
}
}
输出结果
This is my new BikeTop Speed is 178 Kmph
抽象类和特质之间的区别
特质 | 抽象类 |
---|---|
允许多个继承。 | 不允许多重继承。 |
Trait中不允许使用构造函数参数。 | 抽象类中允许使用构造函数参数。 |
特质代码在实施之前是可以互操作的。 | 抽象类的代码是完全可互操作的。 |
可以将特质添加到Scala中的对象实例。 | 无法将抽象类添加到Scala中的对象实例。 |
以上是 Scala中Traits与抽象类的区别 的全部内容, 来源链接: utcz.com/z/337998.html