搜尋

首頁  >  問答  >  主體

java中interface中定义方法,标准的调用方式

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,求大神指点
大家讲道理大家讲道理2916 天前418

全部回覆(4)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:22:52

    你只是聲明一個名為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();
        }
    }

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:22:52

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

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 09:22:52

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:22:52

    因為你沒有new

    回覆
    0
  • 取消回覆