ITPub博客

首页 > 大数据 > 数据挖掘 > 大数据学习:抽象类

大数据学习:抽象类

原创 数据挖掘 作者:andy888168 时间:2019-10-11 15:26:52 0 删除 编辑

大数据学习:抽象类

5.3.1 抽象类的定义

定义一个抽象类:

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

abstract   class  Person{
// 没有初始值,抽象字段
var  name:String
// 没有方法体,是抽象方法
def  id: Int

}

class  Employ extends  Person{
var  name:String= "Fred"
// 实现,不需要 overide 关键字
def  id = name. hashCode

}

5.3.2 抽象类的应用

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

trait  Buffer {
   type  T
   val  element: T
}

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

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

abstract   class  IntSeqBuffer extends  SeqBuffer {
   type  U = Int
}

abstract   class  IntSeqBuffer 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)
     }
val  buf = newIntSeqBuf ( 7 , 8 )
println ( "length = "  + buf. length )
println ( "content = "  + buf. element )

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69947096/viewspace-2659536/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
莫安迪分享各类资讯文章

注册时间:2019-09-02

  • 博文量
    69
  • 访问量
    43789