从子类调用祖先的重写方法版本

时间:2014-06-04 16:49:17

标签: java inheritance

我有一个第三方库类,我需要使用自己的实现进行扩展。我想要扩展的库类本身就是另一个库基类的子类。

我想要基类提供的功能,而不是子类的功能。有没有办法编写我的重写方法,这样我可以从我的子类直接调用(祖父)基类(LibraryBaseClass)?

class LibraryBaseClass
{
    protected void method() // want to call this method
    {
        System.out.println( "LibraryBaseClass" );
        // ... desired functionality here
    }
}

class LibraryClass extends LibraryBaseClass
{
    @Override
    protected void method() // want to skip this method
    {
        System.out.println( "LibraryClass" );
        // ... undesired functionality here
        super.method();
    }
}

class MySubClass extends LibraryClass
{
    @Override
    public void method()
    {
        System.out.println( "MySubClass" );
        super.method(); // would like to call something like LibraryBaseClass.super.method() here
    }
}

// using my method here
new MySubClass().method();

我可以将LibraryBaseClass.method()中的代码复制并粘贴到MySubClass.method()中,但我想尽可能避免这种情况。我无法直接编辑库代码。

0 个答案:

没有答案