簡體   English   中英

Java:如何從內部就地 class 調用超級方法

[英]Java: How to call super method from inner in-place class

我有基礎 class Foo方法spam和 class Bar覆蓋spam 我需要在一些就地定義的回調 object 的方法中調用基本 class 的垃圾郵件

public class Foo {
    public void spam() {
        // ...
    }
}

public class Bar extends Foo {
    @Override
    public void spam() {
        objectWhichRequireCallback(new Callback {
            @Override
            public void onCallback() {
                super.spam();
            }
        });
    }
}

此代碼不起作用,因為superCallback相關,而不是Bar class。 是否可以從就地定義的 object 調用超級方法?

public class Bar extends Foo {
    @Override
    public void spam() {
        objectWhichRequireCallback(new Callback {
            @Override
            public void onCallback() {
                Bar.super.spam();
            }
        });
    }
}

編輯:對不起。 沒有意識到方法名稱是相同的。

您可以為此在 Bar 中創建一個包裝器 function

public class Bar...

    public void mySuperSpam(){
        super.spam();
    }

試試這個: Bar.super.spam();

Bar.this.spam(); 已編譯但它會導致無限遞歸,因為您調用相同的 spam() 本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM