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()
  }
}
相关推荐
程序员cxuan6 小时前
Claude Code 焚诀(一):Claude Code 六种心智模型
人工智能·后端
雪隐6 小时前
用Flutter做背单词APP-01服务器?不存在的,我家里就有
前端·人工智能·后端
鹏易灵6 小时前
C++——8.移动语义初探(移动构造、移动赋值)
开发语言·c++·php
2601_962341306 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计
凯瑟琳.奥古斯特6 小时前
力扣1008:前序重建BST
开发语言·c++·算法·leetcode·职场和发展
huangjiazhi_7 小时前
纯C++实现ini文件操作
java·后端·spring
2zcode7 小时前
项目文档:基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab
月疯7 小时前
np.where()[0]的用法
开发语言·python·numpy
正儿八经的少年7 小时前
Spring Boot
java·spring boot·后端
z落落7 小时前
C#五大加密算法(AES、DES、MD5、RSA、SHA)
开发语言·c#