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()
  }
}
相关推荐
j***89465 分钟前
Spring Boot整合Redisson的两种方式
java·spring boot·后端
Laravel技术社区5 分钟前
php 读取视频流(mp4视频文件),快速读取视频解决方案(案例及配置)
开发语言·php·音视频
FreeCode6 分钟前
LangGraph智能体开发快速入门
后端·langchain·agent
Code_Artist7 分钟前
robfig/cron定时任务库快速入门
分布式·后端·go
ytttr8738 分钟前
基于MATLAB实现晶体共晶凝固模拟
开发语言·算法·matlab
周末程序猿15 分钟前
开源项目|不一样的思维导图
人工智能·后端
小夏coding24 分钟前
分布式锁工具类
后端
鄃鳕27 分钟前
装饰器【Python】
开发语言·python·数码相机
n***840730 分钟前
Spring Boot(快速上手)
java·spring boot·后端
Never_Satisfied35 分钟前
在JavaScript / 微信小程序中,动态修改页面元素的方法
开发语言·javascript·微信小程序