在Scala中,将对象方法组合为类方法
发布时间:2020-12-16 18:16:05 所属栏目:安全 来源:网络整理
导读:我想组合两个库,一个需要我用方法a_1 a_2 … a_n,b_1,b_2 … b_m扩展一个抽象类,另一个提供两个分别实现方法a_i和b_i的对象A和B.是否有一种优雅的方式来结合A和B?这是我目前正在做的事情: class myClass extends abstractClass { def a_1 = A.a_1 def a_2
我想组合两个库,一个需要我用方法a_1 a_2 … a_n,b_1,b_2 … b_m扩展一个抽象类,另一个提供两个分别实现方法a_i和b_i的对象A和B.是否有一种优雅的方式来结合A和B?这是我目前正在做的事情:
class myClass extends abstractClass { def a_1 = A.a_1 def a_2 = A.a_2 ... def b_1 = B.b_1 def b_2 = B.b_2 ... } 解决方法
scala通过traits支持多个遗产,但是一个类不能从一个对象中获得
这是一个例子 object Combiner { trait A { def a_1 = println("Hello A a_1") def a_2 = println("Hello A a_2") } trait B { def b_1 = println("Hello B b_1") def b_2 = println("Hello B b_2") } } abstract class absractClass { def AC } class myClass extends absractClass with A with B { override def AC = println("AC from myClass") } def main(args: Array[String]) { var m = new myClass m.AC m.b_1 m.b_2 m.a_1 m.a_2 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |