Scala Trait

2年前 (2020-03-11) 544次浏览 已收录 0个评论
trait Speak{
  def speak(name:String)={
    println(name+"is speak")
  }
}
trait Read{
 def read(name:String)={
   println(name+"is read")
 }
 
}
class person() extends Speak with Read{
 
}




trait Isequ{
  def isequ(p:Any):Boolean
//  def isequ(p:Any):Boolean={
//    方法体的实现
//  }
}
class point(xx:Int,yy:Int) extends Isequ{
  val x=xx
  val y=yy
  def isequ(p:Any):Boolean={
    /*
     * 查看p2是否是point的实例
     * &&
     * 把p2作为point的实例取出的它的x值
     * p1.x
     */
    p.isInstanceOf[point]&&p.asInstanceOf[point].x==this.x
  }
}
object Trait {
  def main(args: Array[String]): Unit = {
    val p = new person()
    p.speak("zhazhalong")
    p.read("long")
    
    val p1=new point(1,2)
    val p2=new point(1,3)
    println(p1.isequ(p2))
  }
}

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Scala Trait
喜欢 (0)

您必须 登录 才能发表评论!