// AnyName.scala
trait Equal {
def isEqual(x: Any): Boolean
def isNotEqual(x: Any): Boolean = !isEqual(x)
}
trait ToString {
def toString(): String
}
class Point(xc: Int, yc: Int) extends Equal with ToString {
var x: Int = xc
var y: Int = yc
def isEqual(obj: Any) =
obj.isInstanceOf[Point] &&
obj.asInstanceOf[Point].x == x
override def toString(): String =
"x=" + x + ",y=" + y
}
object Test {
def main(args: Array[String]) {
val p1 = new Point(2, 3)
val p2 = new Point(2, 4)
val p3 = new Point(3, 3)
println(p1.isEqual(p2))
println(p1.isEqual(p3))
println(p1.isEqual(2))
println(p1.toString)
}
}
Scala类 | Scala特质 |
---|---|
可以有类参数,如:class Pint(x: Int, y: Int) | 不能有任何类参数,如:trait NoPint(x: Int, y: Int) // 不能编译 |
super调用是静态绑定的 | super调用是动态绑定的 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/17245.html