簡體   English   中英

其方法簽名引用實現該接口的抽象 class 的接口

[英]Interface whose methods signature refer to an abstract class implementing that interface

我根本不是 JAVA 專家,但我發現以下代碼片段運行。

interface Arithmetic {
    MyNumber somma(MyNumber b);
    MyNumber sottrai(MyNumber b);
    MyNumber moltiplica(MyNumber b);
    MyNumber dividi(MyNumber b);
}

abstract class MyNumber implements Arithmetic{
}

public class Test{
    public static void main(String[] args)
    {
        System.out.println("It works");
    }
}

現在在 C++ 中,如果你進行前向聲明,你可以做類似的事情,在 Java 中沒有這樣的事情(據我所知)所以我不明白如何才能很好地編譯算術,盡管我的MyNumber實際上是在算術之后聲明的。 是否有 Java 的技術性解釋這一點?

Java 編譯發生在多個階段,其中一個階段查找所有聲明的 class 符號,稍后階段填充所有類的成員(除了已經找到的嵌套 ZA2F2ED4F8EBC2CBB4C21A29DC40AB6DZ 符號)。

你可以在這里閱讀: https://github.com/openjdk/jdk/blob/master/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Enter.java

暫無
暫無

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

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