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()
  }
}
相关推荐
budingxiaomoli几秒前
SpringBoot快速上手
java·spring boot·后端
小菜鸡桃蛋狗2 分钟前
C++——vector
开发语言·c++·算法
wicb91wJ63 分钟前
手写一个Promise,彻底掌握异步原理
开发语言·前端·javascript
小小仙。10 分钟前
IT自学第三十七天补充
java·开发语言
少司府11 分钟前
C++基础入门:初识模板
开发语言·c++·c·模板·函数模板·类模板·泛型编程
jinanwuhuaguo13 分钟前
OpenClaw范式深度剖析:从技术突破到安全治理的系统性研究(第二篇)
开发语言·人工智能·安全·架构·kotlin·openclaw
lly20240616 分钟前
C++ 命名空间
开发语言
问水っ17 分钟前
Qt高级编程 第7章 用QtConcurrent实现线程处理
java·开发语言
SimonKing19 分钟前
AI编程工具装了一大堆,Skills 管理乱成粥?这个开源神器一招搞定!
java·后端·程序员
代码中介商23 分钟前
C语言进程管理与内存管理深度解析
c语言·开发语言