您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页好程序员大数据培训分享Scala系列之抽象类

好程序员大数据培训分享Scala系列之抽象类

来源:二三娱乐

1抽象类的定义

定义一个抽象类:

如果某个类至少存在一个抽象方法或一个抽象字段,则该类必须声明为abstract。

abstract class Person{//没有初始值,抽象字段var name:String//没有方法体,是抽象方法def id: Int}classEmploy extends Person{var name:String="Fred"//实现,不需要overide关键字def id = name.hashCode}

2抽象类的应用

定义带有抽象类型成员的特质:

trait Buffer {  type T  val element: T}

定义一个抽象类,增加类型的上边界

abstract classSeqBuffer extends Buffer {  type U  //  type T <: Seq[U]  def length = element.length}

abstract classIntSeqBuffer extends SeqBuffer {  type U = Int}

abstract classIntSeqBuffer extends SeqBuffer {  type U = Int}//使用匿名类将 type T 设置为 List[Int]def newIntSeqBuf(elem1: Int, elem2: Int): IntSeqBuffer =  new IntSeqBuffer {       type T = List[U]       val element = List(elem1, elem2)     }valbuf = newIntSeqBuf(7, 8)println("length = " + buf.length)println("content = " + buf.element)

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务