首页 > 其他分享 >继承的定义:

继承的定义:

时间:2024-10-21 16:17:22浏览次数:3  
标签:run 定义 继承 println Unit var new def

在原有类的基础上定义一个类,原有类称为父类,新类称为子类class类名 extends父类名(类体)

class Aniaml(){
  var leg=4
  def run():Unit={
    println("animal run....")
  }
}
//继承:不劳而获
class Dog extends Aniaml(){
  
}
object Test17 {
  def main(args: Array[String]): Unit = {
    //实例化一个对象:new一个对象
    //var a1=new Animal()
    //a1.run()
    var d1=new Dog()
    d1.run()
  }

}

当子类从父类继承方法不能满足时,使用override

class Aniaml(){
  var leg=4
  def run():Unit={
    println("animal run....")
  }
}
//继承:不劳而获
class Dog extends Aniaml(){
  leg=3//对于var修饰的父类的属性,可以直接覆盖
  //用override重写(覆盖)父类的同名的方法
  override def run(): Unit = {
    println(s"${leg}Dog run.....")
  }
}
object Test17 {
  def main(args: Array[String]): Unit = {
    //实例化一个对象:new一个对象
    //var a1=new Animal()
    //a1.run()
    var d1=new Dog()
    d1.run()
  }

}

先执行父类构造器在子类

class Aniaml(var name:String,var age:Int){
  println(s"父类~构造器Animal正在运行.....${name} ${age}")
  var leg=4
  def run():Unit={
    println("animal run....")
  }
}
//继承:不劳而获
class Dog(name:String,age:Int) extends Aniaml(name,age){
  println(s"子类~构造器Dogz正在运行....${name} ${age}")
  leg=3//对于var修饰的父类的属性,可以直接覆盖
  //用override重写(覆盖)父类的同名的方法
  override def run(): Unit = {
    println(s"${leg}条腿的Dog run.....")
  }
}
object Test17 {
  def main(args: Array[String]): Unit = {
    //实例化一个对象:new一个对象
    //var a1=new Animal()
    //a1.run()
    var d1=new Dog(name = "小黑",1)
  //  d1.run()
  }

}

面向语言三个特点:封装,继承,多态(同一操作作用于不同的对象可以有不同的解释,产生不同的执行结果)

class Animal() {
  //属性
  var name = ""

  //方法
  def run(): Unit = {
    println("animal run...")
  }
}
class Dog extends Animal() {
  //重写同名的方法
  override def run(): Unit = {
  println("dog is running...")}

}

  class Cat extends Animal() {
    override def run(): Unit = {
      println("cat is running...")
    }

  }

object Test17 {
  def main(args: Array[String]): Unit = {
    val d1=new Dog()
    val c1=new Cat()
    run(d1)
    run(c1)
  }
  def run(obj:Animal):Unit={
    obj.run()
  }

}

设计一个Point类。其x和y可以通过构造器提供在设计一个子类Lable继承Point类其构造器接收一个标签值和x,y坐标

class Point(var x:Int,var y:Int){
  def print():Unit={
    println(s"x=${x},y=${y}")
  }

}
//x,y是从Point继承来的所以不需要var修饰符
//label是自己的属性需要写val修饰符
//Point(x,y):要去调用父类的构造器所以这里就不需要去补充数据的类型
class LabelPoint(x:Int,y:Int,var label:String) extends Point(x, y){
override def print():Unit={
  println(s"x=${x},y=${y},label=${label}")
}
}
object Test17_1 {
  def main(args: Array[String]): Unit = {
    val p1=new Point(1,2)
    p1.print()
    val labelP1=new LabelPoint(1,2,"小王")
    labelP1.print()
  }

}

标签:run,定义,继承,println,Unit,var,new,def
From: https://blog.csdn.net/zxfgdjfjfjflfllf/article/details/142986034

相关文章

  • 【C#】【DevExpress】自定义单元格右键菜单,去除单元格编辑时,载入系统的默认菜单
    使用GridView,自定义单元格的右击菜单,可以通过监听事件PopupMenuShowing,实现新增菜单。1privatevoidgridView1_PopupMenuShowing(objectsender,DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgse)2{3GridViewview=senderasGridView;4if......
  • Scala的继承(不劳而获)
    Scala中继承的定义为在原有类的基础上定义一个新类,原有类称为父类,新类称为子类 定义:在原有的基础上定义一个新类,原有类称为父类,新类称为子类。class子类名extends父类名 {类体}【问】当子类从父类继承的方法不能满足需要时,子类需要有自己的行为,怎么办?此时使用ove......
  • django admin 后台中添加自定义的 html 页面
    实现效果配置简历模板html文件{%extends"admin/base_site.html"%}{%blockcontent%}<h1>自定义HTML页面</h1><p>{{your_variable}}</p>{%endblock%}admin中添加代码,主要是get_urls以及对应的的视图fromdjango.urlsimportpathfromdjango......
  • 自定义组件-组件的创建和引用
    全局引用 局部引用全局引用VS局部引用组件和页面的区别 ......
  • [实时计算flink]动态CEP中规则的JSON格式定义
    本文为您介绍CEP中规则的JSON格式相关信息。目标人群客户风控平台开发人员:对FlinkCEP较熟悉的平台研发人员应能快速学习本格式,并根据自身平台需求判断是否需要进一步封装。客户风控策略人员:只熟悉具体策略但缺乏Java经验的同学,在熟悉CEP概念的基础上,也可快速上手本格式的使......
  • 基于Python的自然语言处理系列(34):Huggingface 自定义分词器与数据集
            在自然语言处理(NLP)中,分词是将原始文本转换为模型可处理的数字形式的关键步骤。无论是情感分析、文本生成,还是问答系统,分词都决定了模型如何理解输入数据。Huggingface的transformers库提供了多种强大的分词工具,使我们可以灵活地加载、保存和使用预训练......
  • 【Java SE 】继承 与 多态 详解
     ......
  • 变量定义及其的使用
    一.变量:程序中最为基本的单元  作用:能存储同一类型内不断变化的数据  要素:数据类型、变量名、存储的值 二.申明变量格式1:数据类型变量名=变量值;    例如:intnum=19格式2:数据类型变量名;       变量名=变量值;    例如:intage......
  • vue(vue.js)—自定义指令
    原文链接:vue(vue.js)—自定义指令–每天进步一点点vue中的自定义指令就是把原生的dom一些操作进行封装。1.函数形式需求:我们定义一个v-mult指令,和v-text类似,但是会将绑定的值翻倍。在vue中,用directives自定义函数,比如下面这样:<!DOCTYPEhtml><htmllang="en"> <......
  • SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句
    原文链接:SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句–每天进步一点点上一篇文章中简单介绍了springboot通过系统配置的方式配置日志:SpringBoot使用默认的日志logback(1)—系统配置这篇文章简单介绍一下日志的自定义配置。1.自定义配置springboot......