繁体   English   中英

在派生类中将抽象方法实现为静态

[英]implement an abstract method in derived class as static

我有这两个班

class A {

public void foo1() { 
...;     
foo2();       
...;        
}


protected abstract foo2();

}




class B extends A {

public foo2() {       
......    
}

我需要foo2是静态的,所以我可以做B.foo2(),但我也想保留A类中的功能。

有什么建议么?

}

您不能覆盖静态方法或将抽象方法实现为静态方法。

静态方法是在类定义上定义的,而不是在类实例上定义的。 抽象方法是在类实例上定义的。

你说的话实际上是没有道理的。

尽管我不太清楚为什么需要这样做,但是有一种解决方法:

class B {
    @Override 
    public void foo() {
        fooUtil();
    }

    public static void fooUtil() {
        // your impl here
    }
}

然后,您可以改为执行B.fooUtil() ,并使用其行为覆盖A.foo()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM