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()
  }
}
相关推荐
运维行者_4 分钟前
使用Applications Manager监控的关键MongoDB指标
服务器·开发语言·网络·数据库·mongodb·机器学习·云计算
明月_清风12 分钟前
Base64:用 33% 的体积膨胀,买一张在文本世界通行的门票
后端
解决问题no解决代码问题13 分钟前
设计模式分类介绍
java·开发语言·设计模式
得物技术15 分钟前
HorizonVault 技术深潜:如何在 HDD 上做出 100GB/s+ 级大吞吐分布式存储|得物技术
大数据·后端·kafka
sugar__salt15 分钟前
从Python列表切片到LLM接口实战:零基础AI编程落地教程
开发语言·python·ai·prompt·transformer·ai编程
码不停蹄的玄黓19 分钟前
SpringBoot 自动装配原理
java·spring boot·后端
z落落20 分钟前
C# 数组属性和方法(Clear / Copy / IndexOf / LastIndexOf)
开发语言·javascript·c#
XovH21 分钟前
Docker 从 0 到 1 再到 Kubernetes 实战:深入理解 Docker 镜像和分层结构
后端
白露与泡影22 分钟前
Java虚拟线程实战:从线程池痛点到性能优化全流程
java·开发语言·性能优化
IT空门:门主26 分钟前
Java 单例模式详解:7 种实现方式 + volatile 原理 + 反射与序列化问题
java·开发语言·单例模式