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()
  }
}
相关推荐
2401_8582861118 分钟前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
数据知道23 分钟前
IDOR 不安全的直接对象引用:API 越权实战检测
java·开发语言·网络·安全·网络安全
苍何25 分钟前
用 WorkBuddy / Codex + Obsidian 搭建自生长的个人知识库实战
后端
堕落年代30 分钟前
Ollama CPU 推理大提示词优化实测报告(细致化数据版)
java·后端·spring
c2385637 分钟前
# Mini OJ — 项目详解文档
开发语言·数据库·c++
2401_894915531 小时前
Geo 优化源码部署常见报错排查:连接失败、地图加载、地域词失效解决方案
服务器·开发语言·python·安全·php
c238561 小时前
C/C++每日一练20
c语言·开发语言·c++
橘色的喵1 小时前
ARM-Linux 嵌入式库:内存池与信号量的无锁化改造
后端
SamDeepThinking1 小时前
写代码,到底应该参考优秀作品,还是坚持自己的想法?
后端
cfm_29141 小时前
基于OAuth2.0实现微服务SSO单点登录
后端·spring·微服务·架构