zoukankan      html  css  js  c++  java
  • 大三寒假学习 spark学习 Scala面向对编程 继承

    抽象类:

      如果一个类包含没有实现的成员,则必须使用abstract关键词进行修饰,定义为抽象类。

    abstract calss Car{
        // 是抽象类,不能直接被实例化
        val carBrand: String //字段没有初始值,就是一个抽象字段
        def info() //抽象方法,不需要abstract关键字
        def greeting() {
            println("Welcome to my car!")
        }
    }

      关于上面的定义,说明几点:

      (1)定义一个抽象类,需要使用关键字abstract。

      (2)定义一个抽象类的抽象方法,也不需要关键字abstract,只要把方法体空着,不写方法体就可以。

      (3)抽象类中定义的字段,只要没有给出初始化值,就表示是一个抽象字段,但是,抽象字段必须要声明类型,否则编译会报错。

    abstract class Car{
        // 是抽象类,不能直接被实例化
        val carBrand: String //字段没有初始值,就是一个抽象字段
        def info() //抽象方法,不需要abstract关键字
        def greeting() {
            println("Welcome to my car!")
        }
    }
    class BMWCar extends Car{
        override val carBrand = "BMW" //重写超类字段,需要使用override关键字,否则编译报错
        def info() {
            printf("This is a %s car. It is on sale",carBrand)//重写超类抽象方法,不需要使用override关键字,不过,加上不会报错
        }
        override def greeting(){
            println("Welcome to my BMW car!")//重写超类非抽象方法,必须使用override关键字
        }
    }
    class BYDCar extends Car{
        override val carBrand = "BYD" //重写超类字段,需要使用override关键字,否则编译报错
        def info() {
            printf("This is a %s car. It is cheap",carBrand)//重写超类抽象方法,不需要使用override关键字,不过,加上不会报错
        }
        override def greeting(){
            println("Welcome to my  BYD car!")//重写超类非抽象方法,必须使用override关键字
        }
    }
    object MyCar{
        def main(args: Array[String]){
            val myCar1 = new BMWCar()
            val myCar2 = new BYDCar()
            myCar1.greeting()
            myCar1.info()
            myCar2.greeting()
            myCar2.info()
        }
    }

  • 相关阅读:
    thinkphp的钩子的两种配置和两种调用方法
    php闭包实现函数的自调用,也是递归
    php的spl_autoload_register函数的一点个人见解
    详解js变量、作用域及内存
    关于js的call()和apply()两个函数的一点个人看法
    php实现斐波那契数列以及由此引起的联想
    php猴子称王或者约瑟夫难题
    Linux Bash Shell 快速入门
    Fedora14下首次搭建Samba服务器遇到的一些问题
    【JavaScript】我的JavaScript技术总结第一篇——编程细节
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15807594.html
Copyright © 2011-2022 走看看