日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java|Java世界_中文論壇|ChinaJavaWorld技術(shù)論壇 : 有誰知道nul...

 ShangShujie 2006-11-18
Q. How does Java compiler resolve the ambiguity to decide which methods to call?
A:
In the following example, four test() methods, if we pass ambiguous \b{null} to the test, which one should (will) be called? The 3 on top has super/subclass/sub-subclass relationship. The most specific one (down hierarchy) will be called. The 4th with String as a parameter, but it is a sibling of Tester. Ambiguity compile time error results.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Tester {
            void test(Object s)    { System.out.println ("Object version");    }
            void test(Tester s)    { System.out.println ("Tester version");    }
            void test(SubTester s) { System.out.println ("SubTester version"); }
             
            // Not compilable any more if you uncomment the line 
            // since String and Tester are siblings
            // void test(String s) { System.out.println ("String version"); } 
             
            public static void main (String args[]) {
            Tester c = new Tester ();
            // Ambiguous, the most specific one which fit will be call
            c.test (null);         // SubTester version 
            c.test (new Object()); // Object version 
            }
            }
             
            class SubTester extends Tester{
            }
            


引用原文:
Quotation from JLS2

"The informal intuition is that one method declaration is more specific than another if any invocation handled by the first method could be passed on to the other one without a compile-time type error."

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約