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()
  }
}
相关推荐
故事和你915 分钟前
洛谷-算法2-2-常见优化技巧3
开发语言·数据结构·c++·算法·深度优先·动态规划·图论
foundbug9998 分钟前
MATLAB时频分析工具箱:基于FRFT的信号检测与参数估计
开发语言·matlab
DevilSeagull10 分钟前
Rust 方法语法:从定义到实践
开发语言·后端·rust
charlie11451419110 分钟前
通用GUI编程技术——图形渲染实战(三十七)——D3D11初始化与SwapChain:从零搭建GPU渲染框架
开发语言·c++·3d·图形渲染
陈天伟教授10 分钟前
GPT Image 2-城市海报
开发语言·人工智能·gpt·神经网络
原来是猿11 分钟前
线程安全的单例模式
linux·服务器·开发语言·单例模式·策略模式
charlie11451419111 分钟前
通用GUI编程技术——图形渲染实战(三十六)——Constant Buffer与数据传递:CPU-GPU通信通道
开发语言·c++·windows·c·图形渲染·win32
每天进步一点_JL11 分钟前
Java 线程池深度解析:从零开始理解并发编程的核心工具
后端
南境十里·墨染春水13 分钟前
C++笔记 STL lterator迭代器
开发语言·c++·笔记
学习使我健康15 分钟前
Android 广播介绍详情
android·开发语言·kotlin