java中interface中定义方法,标准的调用方式
大家讲道理
大家讲道理 2017-04-18 09:20:52
0
4
411
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這個關鍵字來實例化一個物件的.

把你上面的程式碼修改成如下的:

package com;

public class Test2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ITest tmp = new Test1();
        tmp.test();
    }
}
洪涛

itest是個靜態變數,沒有初始化,為null,不能呼叫它的方法。要先初始化。

左手右手慢动作

這裡改成這樣private static ITest iTest= new Test1()

洪涛

因為你沒有new

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板