Scala教程
Scala面向对象
Scala高级

Scala 抽象类

Scala 抽象类

用抽象关键字声明的类称为抽象类。抽象类也可以有抽象方法和非抽象方法。抽象类用于实现抽象。抽象是我们隐藏复杂的实现细节,只向用户展示功能的过程。
在scala中,我们可以通过使用抽象类和特征来实现抽象。我们已经在此处详细讨论了这些内容。

Scala 抽象类示例

在这个示例中,我们创建了一个 Bike 抽象类。它包含一个抽象方法。类 Hero 扩展它并提供其 run 方法的实现。
扩展抽象类的类必须提供其所有抽象方法的实现。您不能创建抽象类的对象。
abstract class Bike{
    def run()
}
class Hero extends Bike{
    def run(){
        println("running fine...")
    }
}
object MainObject{
    def main(args: Array[String]){
        var h = new Hero()
        h.run()
    }
}
输出:
running fine...

Scala 抽象类示例: 具有构造函数、变量和抽象方法

abstract class Bike(a:Int){            // Creating constructor
    var b:int = 20                    // Creating variables
    var c:int = 25
    def run()                           // abstract method
    def performance(){                  // Non-abstract method
        println("Performance awesome")
    }
}
class Hero(a:Int) extends Bike(a){
    c = 30
    def run(){
        println("Running fine...")
        println("a = "+a)
        println("b = "+b)
        println("c = "+c)
    }
}
object MainObject{
    def main(args: Array[String]){
        var h = new Hero(10)
        h.run()
        h.performance()
    }
}
输出:
Running fine...
a = 10
b = 20
c = 30
Performance awesome

Scala 抽象类示例: 未实现抽象方法

在此示例中,我们没有实现抽象方法 run()。编译器在编译此程序时报告错误。错误信息在输出部分给出。
abstract class Bike{
    def run()               // abstract method
}
class Hero extends Bike{      // Not implemented in this class
    def runHero(){
        println("Running fine...")
    }
}
object MainObject{
    def main(args: Array[String]){
        var h = new Hero()
        h.runHero()
    }
}
输出:
error: class Hero needs to be abstract, since method run in class Bike of type ()Unit is not defined
class Hero extends Bike{
      ^
one error found
为了避免这个问题,要么你必须实现抽象类的所有抽象成员,要么让你的类也抽象。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4