Scala抽象类型

 1 package big.data.analyse.scala
 2 
 3 import scala.io.{BufferedSource, Source}
 4 
 5 /**
 6   * 抽象类型
 7   * Created by zhen on 2019/1/6.
 8   */
 9 trait Reader{
10   type url <: java.io.Serializable
11   type content
12   def reader(fileUrl : url) : content
13 }
14 class FileReader extends Reader{
15   type url = String
16   type content = BufferedSource
17   override def reader(fileUrl : url) = Source.fromFile(fileUrl)
18 }
19 object AbstractType {
20   def main(args: Array[String]) {
21     val fileReader = new FileReader
22     val source = fileReader.reader("C:/Users/zhen/.spyder-py3/发布模块/setup.py")
23     for(line <- source.getLines()){
24       println(line)
25     }
26   }
27 }

解析:

  1.特质和抽象类可以定义一个抽象类型成员,这意味着类型可有具体实现来确定。

  2.含有抽象类型成员的特质或类(classes)经常和匿名类的初始化一起使用。

结果:

 

转载于:https://www.cnblogs.com/yszd/p/10234808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值