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()
  }
}
相关推荐
程序员Bears1 分钟前
Django进阶:用户认证、REST API与Celery异步任务全解析
后端·python·django
codefly-xtl1 分钟前
责任链设计模式
java·开发语言·设计模式
非晓为骁14 分钟前
【Go】优化文件下载处理:从多级复制到零拷贝流式处理
开发语言·后端·性能优化·golang·零拷贝
北极象18 分钟前
Golang中集合相关的库
开发语言·后端·golang
小浪学编程30 分钟前
C#学习7_面向对象:类、方法、修饰符
开发语言·学习·c#
Q_Q196328847538 分钟前
python小说网站管理系统-小说阅读系统
开发语言·spring boot·python·django·flask·node.js·php
喵手40 分钟前
Spring Boot 中的事务管理是如何工作的?
数据库·spring boot·后端
goTsHgo1 小时前
Java的对象头:原理与源码详解
java·开发语言
yunbao00_1 小时前
C++ 复习(一)
开发语言·c++
冼紫菜1 小时前
如何使用责任链模式优雅实现功能(滴滴司机、家政服务、请假审批等)
java·开发语言·设计模式·责任链模式