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 Bike

Top 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 Bike

Top Speed is 178 Kmph

抽象类和特质之间的区别

特质抽象类
允许多个继承。不允许多重继承。
Trait中不允许使用构造函数参数。抽象类中允许使用构造函数参数。
特质代码在实施之前是可以互操作的。抽象类的代码是完全可互操作的。
可以将特质添加到Scala中的对象实例。无法将抽象类添加到Scala中的对象实例。

以上是 Scala中Traits与抽象类的区别 的全部内容, 来源链接: utcz.com/z/337998.html

回到顶部