标签:
Any : Scala中,所有类的超类
Any中定义的方法如下:
final def ==( that: Any ): Boolean // 与equals意义总是相同,不可重写
final def !=( that: Any ): Boolean // 与equals意义总是相同,不可重写
def equals( that: Any ): Boolean
def hashCode: Int // 做散列
def toString: String // 做格式化
(1)Scala中的所有对象都具有上述5种方法。
(2)Scala中,final的说明:
-- 修饰类:该类不能被继承;
-- 修饰字段、方法:字段、方法不能被重写;
(3)Any中,可以通过重写equals方法重新定义==和!=;
AnyVal : Scala中,每个内建值类的父类
Byte、Short、Char、Int、Long、Float、Double、Boolean
(1)对应Java的基本类,它们的值在运行时表示成Java的基本类型的值;
(2)类的实例均以字面量形式存在,不可new,因为值类被定义为既是抽象的,又是final的;
(3)值类型间是平行的,不存在继承关系;
Unit
(1)对应Java中的void,用于不返回任何有趣结果的方法的结果类型,它是由一个实例值,记作()
AnyRef : Scala中,所有引用类的基类
(1)在java平台中,AnyRef实则是类java.lang.Object的别名,因此可以认为java.lang.Object是Java平台上实现AnyRef的方式;
尽管在Java平台上的Scala程序里,Object和AnyRef可交换,但推荐风格是使用AnyRef,因为在设计时,Scala也可以在.Net
工作,而AnyRef是System.Object的别名,因此使用AnyRef是最通用的。
(2)Scala class 和 Java class 的区别:Scala class 还继承了ScalaObject,目的是通过其包含的Scala编译器定义和实现的方法让
Scala程序的执行效率更高。
Nothing:Scala中,所有类的子类
标签:
原文地址:http://www.cnblogs.com/duchao-hit/p/5738751.html