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抽象方法")
      }
    }

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

  • 相关阅读:
    Wamp 扩展Oracle Oci
    Yii 网站上线不需手动配置
    Centos 设置时区
    Crontab 入门
    centos apache安装oracle扩展
    Centos rpm 卸载
    mac vagrant 虚拟机nfs挂载点
    搭建php虚拟环境
    Mac 安装package control
    Sublime 安装、删除插件
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/14413324.html
Copyright © 2011-2022 走看看