在 Scala 中,一个抽象类是使用abstract关键字构造的。它同时包含抽象和非抽象方法,并且不支持多重继承。
例子:
// Scala program to illustrate how to
// create an abstract class
// Abstract class
abstract class Abstclass
{
// Abstract and non-abstract method
def portal
def tutorial()
{
println("Scala tutorial")
}
}
// GFG class extends abstract class
class GFG extends Abstclass
{
def portal()
{
println("Welcome!! GeeksforGeeks")
}
}
object Main
{
// Main method
def main(args: Array[String])
{
// object of GFG class
var obj = new GFG ();
obj.tutorial()
obj.portal()
}
}
输出:
Scala tutorial Welcome!! GeeksforGeeks
就像上课一样,特性可以有方法(抽象和非抽象)和字段作为其成员。 Traits 就像 Java 中的接口一样。但它们比 Java 中的接口更强大,因为在特征中我们可以实现成员。
例子:
// Scala program to illustrate how to
// create traits
// traits
trait mytrait
{
// Abstract and non-abstract method
def portal
def tutorial()
{
println("Scala tutorial")
}
}
// GFG class extends trait
class GFG extends mytrait
{
def portal()
{
println("Welcome!! GeeksforGeeks")
}
}
object Main
{
// Main method
def main(args: Array[String])
{
// object of GFG class
var obj = new GFG ();
obj.tutorial()
obj.portal()
}
}
输出:
Scala tutorial Welcome!! GeeksforGeeks
特性 | 抽象类 |
---|---|
特征支持多重继承。 | 抽象类不支持多重继承。 |
我们可以向对象实例添加特征。 | 我们不允许向对象实例添加抽象类。 |
Traits 不包含构造函数参数。 | 抽象类包含构造函数参数。 |
仅当特征不包含任何实现代码时,它们才完全可互操作。 | 抽象类与 Java 代码完全可互操作。 |
特质是可以叠加的。因此,超级调用是动态绑定的。 | 抽象类是不可堆叠的。因此,超级调用是静态绑定的。 |
相关用法
- Scala TreeSet product()用法及代码示例
- Scala TreeSet apply()用法及代码示例
- Scala TreeSet clear()用法及代码示例
- Scala TreeSet clone()用法及代码示例
- Scala TreeSet contains()用法及代码示例
- Scala TreeSet copyToArray()用法及代码示例
- Scala TreeSet count()用法及代码示例
- Scala TreeSet diff()用法及代码示例
- Scala TreeSet drop()用法及代码示例
- Scala TreeSet dropRight()用法及代码示例
- Scala TreeSet dropWhile()用法及代码示例
- Scala TreeSet equals()用法及代码示例
- Scala TreeSet exists()用法及代码示例
- Scala TreeSet filter()用法及代码示例
- Scala TreeSet find()用法及代码示例
- Scala TreeSet forall()用法及代码示例
- Scala TreeSet foreach()用法及代码示例
- Scala TreeSet head()用法及代码示例
- Scala TreeSet init()用法及代码示例
- Scala TreeSet intersect()用法及代码示例
- Scala TreeSet isEmpty()用法及代码示例
- Scala TreeSet last()用法及代码示例
- Scala TreeSet map()用法及代码示例
- Scala TreeSet max()用法及代码示例
- Scala TreeSet min()用法及代码示例
注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 Difference Between Traits and Abstract Classes in Scala。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。