假设我有一个具有许多方法的类的实例,并且我想扩展该对象中的一个方法的行为。在java中,我想我必须创建一个包装器,将所有调用重定向到实例,然后我可以重新定义包装器中的相关方法。但我想知道在scala中是否还有其他一些更聪明的方法可以做到这一点?
所以,例如
class A {
def x = 1
def y = 2
def z = 3
}
val a = new A
val a2 = wrap(a) { override def z = 4 } // ???
此致 DES
答案 0 :(得分:0)
在Java中,我们可以扩展整个类。由程序员决定哪些方法被覆盖。我们使用" extends"用于执行此任务的关键字。
即
public class A
{
public void method1(){...}
public void method2(){...}
}
public class B extends A
{
public void method2(){...}
public void method3(){...}
}
对于B类,我们使用extends关键字。由于继承,B类继承了method1,在这种情况下覆盖了method2并添加了另一个名为method3的方法。希望这会有所帮助。