Scala的多态

从编译的角度解释Scala的多态含义:在执行期间而非编译期间确定所引用对象的类型,根据实际类型调用其方法。一个编译型语言有两种类型,分别为编译类型和运行类型。程序中定义的引用变量所指向的具体类型和通过该变量发出的方法调用在编译时不确定,而是在程序运行期间才确定的。

Scala 复制代码
class Animal(){
  var name=""
  def run():Unit={
    println("animal run.....")
  }
}
//继承
//1.不劳而获
class Dog extends Aniaml(){
  //重写父类方法
  override def run():Unit={
    println("dog is running...")
  }
}
class Cat extends Aniaml(){
  override def run():Unit={
    println("cay is  running...")
  }
}
object bbb {
  def main(args: Array[String]): Unit = {
    val d1=new Dog()
    val c1=new Cat()
    run(d1)
    run(c1)

  }
  def run(obj:Aniaml):Unit={
    obj.run()
  }
}
相关推荐
花间相见几秒前
【JAVA基础11】—— 吃透原码、反码、补码:计算机数值表示的底层逻辑
java·开发语言·笔记
阿蒙Amon1 分钟前
C#常用类库-详解Playwright
开发语言·c#
特种加菲猫2 分钟前
C++ std::list 完全指南:从入门到精通所有接口
开发语言·c++
清空mega2 分钟前
第4章:JSP 程序设计实战——for、if、动态表格与 99 乘法表
开发语言·python
共享家95278 分钟前
Java入门(类和对象)
java·开发语言
习惯就好zz12 分钟前
Qt Quick 系统托盘完整实践
开发语言·qt·qml·系统托盘·system tray·qapplication·qguiapplication
笨笨马甲13 分钟前
Qt集成OpenCV
开发语言·qt
笨笨马甲13 分钟前
Qt 工业机器视觉开发
开发语言·qt
咚为13 分钟前
深入浅出 Rust FFI:从内存安全到二进制兼容
开发语言·安全·rust
掘金者阿豪22 分钟前
小爱音箱秒变智能搭子!MiGPT GUI+cpolar,远程操控超省心
后端