好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

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

[复制链接]
30 0
叶子老师 发表于 3 天前 | 只看该作者 |阅读模式 打印 上一主题 下一主题
好程序员大数据培训继续为大家分享Scala系列之抽象类1抽象类的定义
定义一个抽象类:
如果某个类至少存在一个抽象方法或一个抽象字段,则该类必须声明为abstract。
abstract class Person{
//没有初始值,抽象字段
var name:String
//没有方法体,是抽象方法
def id: Int

}

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

}
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)

精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技正规体育投注 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启