首页 > 其他分享 >Scala继承和多态

Scala继承和多态

时间:2024-10-20 11:48:48浏览次数:8  
标签:Scala 继承 子类 多态 say Animal println 父类 def

//定义一个类
class Animal() {
  println("父类 Animal的构造器被调用")
  var legs = 4
  def say():Unit ={
    println("Animal say....")
  }
  def run():Unit ={
    println("Animal run....")
  }
}

//定义一个子类Dog,继承自父类Animal
//继承的好处:(1) 不劳而获
class Dog extends Animal() {
  println("子类 Animal的构造器被调用")
  //用override 去覆盖(重写)父类的同名方法
  //在子类中,可以通过 super 来访问父类
  //在子类中,可以通过 this 来访问自己
  override def say():Unit ={
    println(s"Dog say.....${this.legs}")
    //super.say
  }
}

object Test4{

  //封装一个函数,它的参数类型是父类类型
  def getSay(a:Animal):Unit ={
    a.say()
  }
  def main(args: Array[String]): Unit = {
    //var a1 = new Animal()//实例化子类的对象,会先调用父类构造器,再调用子类的构造器
    var d1 = new Dog()
    //getSay(a1)//吃(苹果) 吃(面条)
    //getSay(d1)
  }
}

标签:Scala,继承,子类,多态,say,Animal,println,父类,def
From: https://blog.csdn.net/2401_83599586/article/details/142912674

相关文章

  • Java继承机制深度解析:细探private与protected权限控制
    private和protected是Java中的两种访问修饰符,用于控制类成员(字段和方法)的访问权限。它们在设计类和实现封装、继承多态性方面具有重要作用。下面详细说明它们的区别和含义。1.private修饰符含义:被private修饰的成员(字段或方法)只能在定义它们的类内部访问。其他......
  • C++——继承
    1.概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数......
  • (新!)c++多态
    C++ 多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类Shape被派生为两个类,如下所示:实例#include<iostream>usingnames......
  • Scala中reduce函数
    reduce()方法是一个高阶函数,它接受集合中的所有元素(数组,列表等),并使用二进制运算将它们组合以产生单个值。必须确保运算是可交换的和关联的。匿名函数作为参数传递给reduce函数。reduce作用:是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的......
  • Scala的fold
    fold的解释为:对数组的每个元素执行指定的二元折叠操作。注意:fold与reduce和reduceleft的区别在于fold有一个初始值,在取值运算的过程中第一个元素需要与初始值进行运算,再一次进行下一步的运算。fold作用:fold是一种集合操作(与reduce类似),用于对集合中的元素进行聚合操作,返回一个......
  • C++之子类继承与父类构造
    C++之子类继承与父类构造文章目录C++之子类继承与父类构造1.问题引出2.原则3.解析3.1单一继承3.1.1父类无参构造函数3.1.1.1子类无定义构造函数3.1.1.2子类定义构造函数3.1.2父类存在无参构造函数和有参构造函数3.1.3父类仅存在有参构造函数3.2链式继承3.3多继承......
  • 【C++】C++中的继承,看这一篇就够了
    【C++】C++中的继承,看这一篇就够了一.继承的概念及定义继承的概念继承定义继承关系和访问限定符继承基类成员访问方式的变化二.基类和派生类对象赋值转换三.继承中的作用域四.派生类的默认成员函数五.继承与友元六.继承与静态成员七.复杂的菱形继承及菱形虚拟继承......
  • Scala入门基础(12)抽象类
    抽象类,制定标准,不要求去具体实现               包含了抽象方法的类就是抽象类。抽象方法只是有方法名,没有具体方法体的方法定义抽象类要用abstract(抽象)关键字用智能驾驶技术举例:演示)具体属性var,val属性名=值;抽象属性var属性名:类型具体方法:完整......
  • Java面向对象之继承,深度剖析继承的使用
    各位看官早安午安晚安呀如果您觉得这篇文章对您有帮助的话欢迎您一键三连,小编尽全力做到更好欢迎您分享给更多人哦大家好我们今天来学习java面向对象的三大特性之一的继承那大家肯定要问什么是继承?继承有什么用?以及继承的语法格式是设么样的?接下来跟着小编我带领大家......
  • python: invalid value encountered in divide以及invalid value encountered in doub
    运行命令pythoneqtl_prepare_expression.pydata.tpm.gctdata.reads_count.gct--tpm_threshold0.1--count_threshold2--sample_frac_threshold0.2--normalization_methodtmm--outputdata.txt时出现了报错“invalidvalueencounteredindivide”以及“invalidvalue......