Scala 面向对象知识点总结

一、类

1.一个源文件中可以包含多个类,都可以是public级别的,不用声明public

2.类可以通过new来进行实例化,并访问类中的方法和变量。

3.类的继承:

Scala继承一个基类跟Java很相似, 需要注意以下几点

(1).重写一个非抽象方法必须使用override修饰符。

(2).只有主构造函数才可以往基类的构造函数里写参数。

(3).在子类中重写超类的抽象方法时,你不需要使用override关键字。

(4).重写字段:override val,override var 

二、包

与java中类似,使用的时候要引入相关包。

三、访问权限控制

(1)私有成员:private的成员仅在包含了成员定义的类或对象内部可见(java允许外部类访问其内部类的私有成员)

scala:                                                                           java:

(2)保护成员:protected成员只在成员的类的子类中可以被访问(对比java,还是比java严格; java 继承或者同包可以访问)

相同包下,不是子类也不可以访问protected方法

(3) 伴生类和伴生对象可以互相访问彼此的私有成员

四、Case Class

案例类 case class(在做模式匹配的时候很重要)

例子来自《菜鸟教程》

五、Abstract class 抽象类

声明抽象方法不需要加abstract关键字,只需要不写方法体

子类重写父类的抽象方法时不需要加override

父类可以声明抽象字段(没有初始值的字段)

子类重写父类的抽象字段时不需要加override

六、特质

详细看下面博文:

Scala特质(Trait)

https://blog.csdn.net/hehe_soft_engineer/article/details/103226250

七、自身类型(自身类型的特殊形式)

当特质扩展类时编译器能够确保所有混入该特质的类都以这个类为超类

为了起到和混入的这个超类特质一样的效果,可以使用自身类型

this:Engine=>就是自身类型声明

这告诉编译器,所有继承Car的具体类必须同时也是一个Engine

例子来自https://blog.csdn.net/bluishglc/article/details/60739183

八、多重继承的机制

Scala是通过类的全序化(Class Linearization)实现,或称作类的线性化,具体内容在博文中有详细介绍。

https://blog.csdn.net/hehe_soft_engineer/article/details/103226250

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值