zoukankan      html  css  js  c++  java
  • 寒假学习日报(四十)——继承知识补充

      今天补一下scala的继承知识。

    package com.chapter01.extendsabout
    
    object abstractabout {
      def main(args: Array[String]): Unit = {
        val n = new Sub_ABS
        n.cry()
        println("n.name=" + n.name + "	 n.age=" + n.age)
        //匿名子类
        val m = new ABS {
          override var name: String = "k"
    
          override def cry(): Unit = {
            println("cry匿名子类")
          }
        }
        m.cry()
        m.smile()
        println("m.name=" + m.name + "	 m.age=" + m.age)
      }
    }
    
    //抽象字段:没有初始化的字段
    //当类含有抽象属性时,需要标注abstract,因为scala中类的属性必须初始化,否则会报错
    abstract class ABS {
      //底层不会生成name属性,而是生成name和name_$eq方法
      var name: String  //抽象
      val age: Int = 10 //普通属性
      var num: Int = 0  //普通属性
    
      def cry() //抽象方法
      def smile(): Unit ={
        println("smile实现方法")
      }
    }
    
    class Sub_ABS extends ABS{
      //此处是重写抽象属性,本质上实现了抽象方法,因此override可省略
      var name: String = "SUB"
      //非抽象属性则必须声明override
      override val age: Int = 20
      //var变量使用override重写时,代码段不会报错,但运行时会抛出错误
      //override var num: Int = 2
      //***因此var变量重写必须使用抽象方法
    
      //override可省略
      def cry(): Unit = {
        println("cry抽象方法")
      }
    }

     在家的学习效率真不算高,慢慢来吧。要稳住心态才行。

  • 相关阅读:
    JQuery中的AJAX
    (十六)JQuery Ready和angularJS controller的运行顺序问题
    Excel自己定义纸张打印设置碰到无法对上尺寸的问题
    MVC整个样例的源代码
    将Image转化为BufferImage
    Graphics samples2
    Graphics samples
    please tell me the error about java Graphics
    获取网络资源大小
    java通过地址获取主机名
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/14413324.html
Copyright © 2011-2022 走看看