zoukankan      html  css  js  c++  java
  • scala之被保护对象的访问

    在scala语言中, 子类中使用super只能调用父类的方法, 不能调用其它任何属性

    子类不能访问父类中的私有字段, 被 保护的字段及普通字段可以访问。

    package cn.qianfeng
    
    object demo_par {
        def main(args: Array[String]): Unit = {
            val f1 = new F1("方程式赛车",12,5) // 子类的name,传入的age
            f1.show
        }
    }
    
    class Car{  // 父类
        private var name:String = "比亚迪"
        protected var age:Int = _
        var leg:Int = 3
    
        def this(name:String,age:Int){
            this
            this.name = name
            this.age = age
        }
    
        def show: Unit ={
            println(s"name=${name}, age=${age}, leg=${leg}")
        }
    }
    
    class F1 extends Car{  // 子类
    //    override val leg: Int = 4 // 子类中重写父类字段
        var name:String = _
        private var color:String = _
    
        def this(name:String,age:Int, leg:Int){
            this
            this.name = name  // 子类不能访问父类中的私有变量
            this.age = age  // 子类优先调用子类的变量
            this.leg = leg  // 父类中的leg在此被修改
        }
    
        override def show: Unit = { // 重写父类的方法
            super.show  // super调用父类的方法, 父类中的leg字段被修改,从3-->5
    //        println(super.leg) // 子类中supper 只能调用父类的函数, 其它均不能调用
            //
            println(s"name=${name}, age=${age}, leg=${leg}")
        }
    
    }

     运行结果 :

    name=比亚迪, age=12, leg=5
    name=方程式赛车, age=12, leg=5

  • 相关阅读:
    Kafka 配置
    Zookeeper的Watcher机制
    Ubuntu18.04下希捷移动硬盘Seagate Backup Plus读写慢
    Spring Boot 使用Jar打包发布, 并使用 Embedded Jetty/Tomcat 容器
    再谈C#委托与事件
    C#委托和事件例析
    PHP:session无法使用
    C++:实现类似MFC的IsKindOf功能
    C++:复制构造函数
    C++:运算符重载
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15135094.html
Copyright © 2011-2022 走看看