java中interface中定义方法,标准的调用方式
大家讲道理
大家讲道理 2017-04-18 09:20:52
0
4
408
package com;

public interface ITest {

    public void test();
}

===========================================

package com;

public class Test1 implements ITest {

    @Override
    public void test() {
        // TODO Auto-generated method stub
        
        System.out.println("调用成功");
    }

}

======================================

package com;

public class Test2 {

    private static ITest iTest;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        iTest.test();
    }
    
    
    public ITest getiTest() {
        return iTest;
    }
    public void setiTest(ITest iTest) {
        this.iTest = iTest;
    }
    

}


为什么返回值为null???第一次用sf,求大神指点
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(4)
伊谢尔伦

iTest という名前の変数を宣言しただけで、インスタンス化していません。JAVA 言語では、通常、オブジェクトのインスタンス化に NEW キーワードが使用されます。

上記のコードを次のように変更します。

リーリー
いいねを押す +0
洪涛

itest は初期化されていないため、メソッドを呼び出すことができません。最初に初期化する必要があります。

いいねを押す +0
左手右手慢动作

ここを private static ITest iTest= new Test1() に変更します

いいねを押す +0
洪涛

新しいものがないからです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート