首页 > 其他分享 >Scala的多态

Scala的多态

时间:2024-10-21 15:20:39浏览次数:3  
标签:run Scala 多态 Aniaml 编译 Unit class def

 从编译的角度解释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()
  }
}

标签:run,Scala,多态,Aniaml,编译,Unit,class,def
From: https://blog.csdn.net/Betty_at/article/details/143112824

相关文章

  • Scala的sortedWith
    sortedWith:基于函数的排序,通过一个comparator函数,实现自定义排序的逻辑。sortWith方法:它使用传入的比较函数对集合进行排序。在排序过程中,根据比较函数的返回值来决定元素的顺序。如果比较函数返回true,则表示第一个参数应该排在第二个参数之前;如果返回false,则表示第一个参......
  • Scala的抽象类
    1.定义:抽象类是一个不能被实例化的类。无论在Scala中还是Java中都不可以直接创建对象,抽象类通过子类创建对象。//抽象类:制定标准,不要求去具体实现//abstract:抽象abstractclassAICar(){varbrand=""//自动驾驶:不要去具体实现功能defautoRun}//抽象类......
  • Scala的内部类
    Scala的内部类是指定义在类或对象内部的类classCar{privatevarspeed=0//私有属性varcolor="black"defrun():Unit={println(s"runwith${speed}")}//内部类:写在类里面的类//1.定义一个类class......
  • 【Java SE 】继承 与 多态 详解
     ......
  • Java面向对象之多态,向上转型我们大家庭的由来
    各位看官早安午安晚安呀如果您觉得这篇文章对您有帮助的话欢迎您一键三连,小编尽全力做到更好欢迎您分享给更多人哦大家好我们今天来学习Java面向对象的三大特性之一的继承,我们大家庭就要来啦~一:多态的概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当......
  • 三,Java面向对象的特点其三:多态
    Java面向对象:深入理解多态性在Java编程中,多态性(Polymorphism)是指同一个事物在不同时刻下的不同状态。多态性是面向对象编程中的一个重要概念,它允许我们根据需要在运行时动态地改变对象的行为。多态概述多态允许一个类有多个形态,即在运行时可以改变对象的行为。多态性是继承和方......
  • Scala继承和多态
    //定义一个类classAnimal(){println("父类Animal的构造器被调用")varlegs=4defsay():Unit={println("Animalsay....")}defrun():Unit={println("Animalrun....")}}//定义一个子类Dog,继承自父类Animal//继承的好处:(1)不劳而获cla......
  • (新!)c++多态
    C++ 多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类Shape被派生为两个类,如下所示:实例#include<iostream>usingnames......
  • Scala中reduce函数
    reduce()方法是一个高阶函数,它接受集合中的所有元素(数组,列表等),并使用二进制运算将它们组合以产生单个值。必须确保运算是可交换的和关联的。匿名函数作为参数传递给reduce函数。reduce作用:是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的......
  • Scala的fold
    fold的解释为:对数组的每个元素执行指定的二元折叠操作。注意:fold与reduce和reduceleft的区别在于fold有一个初始值,在取值运算的过程中第一个元素需要与初始值进行运算,再一次进行下一步的运算。fold作用:fold是一种集合操作(与reduce类似),用于对集合中的元素进行聚合操作,返回一个......