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()
  }
}
相关推荐
Mr.45672 分钟前
Netty中实现设备消息串行处理:Semaphore + 线程池
java·后端
weixin_446260857 分钟前
Typora 插件开发实战:基于 JavaScript/HTML 构建定制化 Markdown 扩展
开发语言·javascript·html
好家伙VCC11 分钟前
Rust+Bioinfo:80ms极速SNP注释引擎
java·开发语言·算法·rust
qq43569470114 分钟前
Vue02
开发语言·前端·javascript
代码中介商16 分钟前
C++11右值引用与移动语义深度解析
开发语言·c++
码上有光16 分钟前
c++:二叉搜索树(map和set的底层结构)
开发语言·c++·递归·二叉搜索树
AsiaLYF21 分钟前
Kotlin MutableSharedFlow: emit vs tryEmit 详解
开发语言·前端·kotlin
buxiangshui_cd23 分钟前
Conda命令
开发语言·python·conda
踏着七彩祥云的小丑24 分钟前
Go学习第2天:程序结构+基础语法+数据类型
开发语言·学习·golang·go
隔窗听雨眠26 分钟前
VMware迁移上云的十个关键关卡
开发语言·php·vmware