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,求大神指点


九州编程
浏览 1875回答 4
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();    }}

宝慕林4294392

itest是个静态变量,没有初始化,为null,不能调用它的方法。要先初始化。

摇曳的蔷薇

这里改成这样private static ITest iTest= new Test1()

慕村9548890

因为你没有new
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java