scala里面的抽象类

来源:互联网 发布:浙江大学有线网络 编辑:程序博客网 时间:2024/05/17 20:24

几个月前学习了scala,但是后来没有坚持下来,最近无事就又翻出来看看 !

这里主要说下scala里面的抽象类:

package com.demo.abstractdemoimport java.io.{FileInputStream, BufferedInputStream, File}import java.net.URL/** * Created with IntelliJ IDEA. * User: a549238 * Date: 2/27/13 * Time: 3:15 PM * To change this template use File | Settings | File Templates. *//*抽象类test */abstract class BuilkReader {  type In  val source:In  def read:String}class StringBuilkReader(val source:String) extends BuilkReader{  type In=String  def read=source}class FileBuilkReader(val source:File) extends  BuilkReader{  type In=File  def read={    val in=new BufferedInputStream(new FileInputStream(source))    val numBytes=in.available()    val bytes=new Array[Byte](numBytes)    in.read(bytes,0,numBytes)    new String(bytes)  }}  object client{    def main(args:Array[String])    {      println(new StringBuilkReader("Hello Scala!").read)      val path=Thread.currentThread().getContextClassLoader.getResource("")      val projectpath=path.toString.substring(6,path.toString.indexOf("out"))  //截取到项目根目录  ,同时去除“file:/”      val filepath=projectpath+"src/com/demo/abstractdemo/BuilkReader.scala"      println(path+"\n"+filepath+"\n"+projectpath)      println(new FileBuilkReader(new File(filepath)).read)    }  }

代码当中的“builkRead.scala"文件就是本程序代码。