• 大三寒假学习 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()
        }
    }

  • 相关阅读:
    什么是 canvas(画布)?
    JavaScript
    JavaScript函数
    JavaScript事件
    JavaScript获取元素
    文件拷贝——高淇JAVA300讲笔记之IO和File
    读取与写出文件——高淇JAVA300讲笔记之IO和File
    File类的常用方法2——高淇JAVA300讲笔记之IO和File
    File类的常用方法1——高淇JAVA300讲笔记之IO和File
    路径常量,绝对路径与相对路径,构造File对象——高淇JAVA300讲笔记之IO和File
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15807594.html
Copyright © 2020-2023  润新知