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()
  }
}
相关推荐
郝学胜-神的一滴8 分钟前
Python 高级编程 026:序列内核深剖
开发语言·python·程序人生·软件工程
CoderF8 分钟前
jstack 如何分析死锁:从线程栈到等待环
后端
xiaotianyuanma10 分钟前
【计算机毕业设计】基于java web的社区养老服务管理系统设计与实现
java·开发语言·课程设计
Conan在掘金13 分钟前
ArkTS 进阶之道(5):struct 里为啥不能嵌 struct?终态声明 + 状态边界
后端
jinshw15 分钟前
自己实现GIS配图软件(二)
前端·后端·rust
Wang's Blog17 分钟前
Go-Zero项目开发39: 熔断、限流与降级的高可用实践
开发语言·后端·golang·go-zero
Alan_69123 分钟前
第三方API对接的通用封装模式
服务器·开发语言·php
霸道流氓气质27 分钟前
Java中集成Weka 技术教程:从入门到工程实践
java·开发语言·数据挖掘
Full Stack Developme27 分钟前
SpringBoot 内嵌 Tomcat 的启动流程
spring boot·后端·tomcat