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()
  }
}
相关推荐
XovH17 小时前
Docker 网络入门:桥接、自定义与主机网络
后端
用户21816970493017 小时前
golang socket(三) TCP协议 实现聊天功能 TCPConn
后端
Kir1to17 小时前
线程的三种创建方式与生命周期及线程池
后端
Rust研习社17 小时前
MSRV 是什么?一文说清楚
后端·rust·编程语言
XovH17 小时前
Docker 网络进阶:容器间通信与 DNS 解析
后端
周杰伦fans17 小时前
C# LINQ 排序详解 —— OrderBy / OrderByDescending / ThenBy / ThenByDescending
开发语言·c#·linq
xyq202417 小时前
Python3 注释
开发语言
muddjsv17 小时前
Python核心语法分类详解:从入门到精通
开发语言·windows·python
月読h17 小时前
Hermes QQbot websocket Problems
后端
我是唐青枫18 小时前
Kotlin Lambda 表达式详解:从基础语法到实战封装
开发语言·kotlin