码迷,mamicode.com
首页 > 其他好文 > 详细

专题 类的层级

时间:2016-08-05 00:48:49      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!