scala 与groovy 语法对比----长期更新

本文探讨了Scala和Groovy中的traits特性,强调了它们如何作为接口的替代品,允许声明抽象和具体方法及属性。虽然两种语言的traits在概念上相似,但在多重继承方面存在差异。文章通过示例展示了这些区别。
摘要由CSDN通过智能技术生成

最近在学scala的同时也在接触groovy,因为每个语言都有很多相同点和不同点,拿出来比较就不容易混乱了。太基本的语法这里就不列出来对比了,只列出些遇到的比较重要的语法或者特性之间容易混淆的东西。

一、traits 特性

在scala中 traits的出现是为了代替java中的interface,与interface不同的是,interface只可以声明抽象方法,而traits可以声明抽象/具体属性,抽象/具体方法。可以这么说,trait内部的写法可以与一个普通的类没什么区别。并且trait可以被多重继承。

在groovy中也是如此。

那么它们有什么不同呢?普通的语法格式这里就不指出来了,就说说多重继承的区别。

1-1摆例子

scala代码

trait Logged {
def log(msg: String) // This method is abstract
}

trait ShortLogger extends Logged {
val maxLength = 15 // A concrete field
override def log(msg: String){print("23")}
def fun(){}
}
trait ShortLogger1 extends Logged {
 val maxLength = 16 // A concrete field
override def log(msg: String){p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值