gpt4 book ai didi

java - 改变继承的super方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:52 26 4
gpt4 key购买 nike

我想更改继承类的 super 方法。我有类似的东西:

class A {
public void method() {
// Do something here
...
}
}

class B extends A {
@Override
public void method() {
// Do something here
...
super.method();
}
}

class C extends B {
@Override
public void method() {
if(useB()) {
// Use B's method
super.method();
} else {
// Use A's method
super.super.method();
}
}
}

正如你所看到的,有时我需要使用A的方法,有时需要使用B的方法。那我该怎么办呢?

最佳答案

B.java中添加保存方法

class A {

public void method() {
// Do something here
...
}
}

class B extends A {

public void preserveMethodA(){
super.method();
}

@Override
public void method() {
// Do something here
...
preserveMethodA()
}

}

class C extends B {

@Override
public void method() {
if(useB()) {
// Use B's method
super.method();
} else {
// Use A's method
super.preserveMethodA()
}
}

}

关于java - 改变继承的super方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37440676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com