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()
  }
}
相关推荐
好奇龙猫3 分钟前
[大学院-python-base gammer learning2: python base programming ]
开发语言·python
海盗123421 分钟前
C#上位机开发-S7协议通信
开发语言·c#
小短腿的代码世界26 分钟前
Qt 2D 绘制实战与性能优化深度解析
开发语言·qt·性能优化
FeBaby34 分钟前
ReentrantLock 与 synchronized 底层实现对比图解
开发语言·c#
jaycyj34 分钟前
pytest
开发语言·python
A_aspectJ37 分钟前
【Java基础开发】基于 Java Swing +MySQL + JDBC 版实现图书管理系统
java·开发语言·mysql
TE-茶叶蛋37 分钟前
Spring最核心扩展点:BeanPostProcessor
java·后端·spring
Gary Studio42 分钟前
安卓HAL编译流程
开发语言·python
我是无敌小恐龙1 小时前
Java SE 零基础入门Day06 方法重载+Debug调试+String字符串全套API详解(超全干货)
java·开发语言·人工智能·python·transformer·无人机·量子计算
AI+程序员在路上1 小时前
Qt6读取rtsp视频流的几种方法
开发语言·qt6.3