在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Scala/ Scala final關(guān)鍵字
Scala方法重載
Scala模式匹配
Scala throw關(guān)鍵字
Scala提取器
Scala概述
Scala throws關(guān)鍵字
Scala finally塊
Scala正則表達(dá)式
Scala循環(huán)語句
Scala多線程
Scala函數(shù)
Scala final關(guān)鍵字
Scala方法覆蓋
Scala字符串
Scala線程實(shí)現(xiàn)
Scala異常處理
Scala類和對(duì)象
Scala數(shù)據(jù)類型
Scala單例和伴生對(duì)象
Scala構(gòu)造函數(shù)
Scala教程
Scala Case類和對(duì)象
Scala繼承
Scala開發(fā)環(huán)境安裝配置
Scala運(yùn)算符
Scala文件I/O
Scala線程方法
Scala變量
Scala try-catch語句
Scala基礎(chǔ)語法
Scala集合
Scala數(shù)組
Scala閉包
Scala訪問修辭符
Scala this關(guān)鍵字

Scala final關(guān)鍵字

final是一個(gè)關(guān)鍵字,用于防止超類成員繼承為派生類。也可以聲明final變量,方法和類。

Scala final變量示例

不能覆蓋子類中的final變量,我們來看下面一個(gè)例子。

Scala單繼承示例

class Vehicle{  
     final val speed:Int = 60  
}  
class Bike extends Vehicle{  
   override val speed:Int = 100  
    def show(){  
        println(speed)  
    }  
}  

object Demo{  
    def main(args:Array[String]){  
        var b = new Bike()  
        b.show()  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
Demo.scala:5: error: overriding value speed in class Vehicle of type Int;
 value speed cannot override final member
   override val speed:Int = 100
                ^
one error found

Scala final方法

在父類中的final方法聲明不能被覆蓋。 如果不想讓它被覆蓋,則可以把方法定義成為final。嘗試覆蓋final方法將導(dǎo)致編譯時(shí)錯(cuò)誤。

Scala final方法示例

class Vehicle{  
     final def show(){  
         println("vehicle is running")  
     }  
}  
class Bike extends Vehicle{  
   //override val speed:Int = 100  
    override def show(){  
        println("bike is running")  
    }  
}  
object Demo{  
    def main(args:Array[String]){  
        var b = new Bike()  
        b.show()  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
Demo.scala:8: error: overriding method show in class Vehicle of type ()Unit;
 method show cannot override final member
    override def show(){
                 ^
one error found

Scala final類示例

也可以定義final類,final類不能繼承。 如果定義了一個(gè)類為final類,那就不能進(jìn)一步擴(kuò)展了。

final class Vehicle{  
     def show(){  
         println("vehicle is running")  
     }  

}  

class Bike extends Vehicle{  
       override def show(){  
        println("bike is running")  
    }  
}  

object Demo{  
    def main(args:Array[String]){  
        var b = new Bike()  
        b.show()  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
Demo.scala:8: error: illegal inheritance from final class Vehicle
class Bike extends Vehicle{
                   ^
one error found

上一篇:Scala文件I/O下一篇:Scala集合