-2

innerクラスに基づいた解決するサンプルコードがあります。

package inner;

class A {
    void m() {
        System.out.println("Outer");
    }
}

public class TestInner {
    public static void main(String[] args) {
        new TestInner().go();       
    }

    private void go() {
        new A().m();
        class A{
            void m(){
                System.out.println("Inner");
            }
        }
        new A().m();
    }
    class A{
            void m(){
            System.out.println("Middle");
        }
    }
}

上記のサンプル コードの出力は次のとおりです。

Middle 
Inner

そして私の質問は、パッケージ名を使用してオブジェクトを作成したくない場合、出力を次のように出力するにはどうすればよいかということです。

Outer
Inner
4

2 に答える 2

0

パッケージを使用することが明らかに答えなので、鈍いものを探していると思います。

外部クラスを追加して呼び出すことができます。

class B extends A { }

// in TestInner.go()
    new B().m();
    class A{
        void m(){
            System.out.println("Inner");
        }
    }
    new A().m();
于 2012-04-20T08:01:10.267 に答える
0
public class TestInner {
public static void main(String[] args) {
    new TestInner().go();       
}

private void go() {
    new inner.A().m();        //will produce output "Outer"
    class A{
        void m(){
            System.out.println("Inner");
        }
    }
    new A().m();             //will produce output "Inner"
}
class A{
        void m(){
        System.out.println("Middle");
    }
}
于 2014-03-27T00:08:36.450 に答える