好程序员大数据

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

2019-10-08  本文已影响0人  ab6973df9221

好程序员大数据培训继续为大家分享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)

好程序员大数据培训官网:http://www.goodprogrammer.org/

上一篇下一篇

猜你喜欢

热点阅读