java接口能否实例化_如何扩展接口

Date:  2012/9/27   Sort:  Java 2936 Views /  0 Comments / 

如题所示,这里有两个问题:

    1、java的接口能否实例化

    2、java如何去扩展一个接口

 

首先解决第一个问题,回答是:java接口不能直接实例化,不过有种方式看起来很像实例化,如下面代码所示:

interface TestNew {
	void test();
	void TestNew();//这个不是构造函数,只不过是和构造函数同名而已,有点最大的区别是:构造函数是没有返回值的,但是这里有返回值
}
public class TestNewInterface{
	TestNew te = new TestNew(){
		public void test() {
			//必须实现TestNew接口中的方法
		}
		public void TestNew() {
			//
		}
	};

 

上面这种方式也是比较常使用的,但是要注意一点,这样使用new一个接口的时候,必须将接口的所有方法都实现,比如上面的,必须将test()和TestNew()两个方法实现。

另外注意一点,接口中是没有构造函数这种说法的,上面的例子中虽然出现了和接口名一样的方法,但是他不是构造方法,有个明显的标志是,构造函数是没有返回值的,但是上面的方法中存在了void类型的返回值,所以可以判定,TestNew()方法不是构造方法,这一点也提示我们,在以后的编程中,尤其是接口一定要注意不要使用构造方法,同时在给方法命名的时候,要注意最好不要和接口名一样,虽然java编译器不认为这是种错误,但是很容易产生混淆。

==========================华丽的分割线=========================================

关于第二个问题:java如何去扩展一个接口呢? 答案是通过继承,这一点我刚开始不是很理解,我一直以为只有类是可以集成的,但是没有想到接口也可以继承,(可能我的知识不够充实^_^),下面有个例子可以做个参考:

 

interface Intface1{
	void test01();
}
interface Intface2 extends Intface1{
	void test02();
}

public class TestNewInterface implements Intface2{
	public void test01(){}
	public void test02(){}
}

注意在这时候,如上面的例子中的Intface2接口,如果实现这个接口的话,必须同时将Intface1接口中的方法给实现了,否则编译器会报错。

更多

版权所有:《攀爬的蜗牛--专注于技术开发》 => 《java接口能否实例化_如何扩展接口
本文地址:http://archive.dutycode.com/?post=57
除非注明,文章均为 《攀爬的蜗牛--专注于技术开发》 原创,欢迎转载!转载请注明本文地址,谢谢。

上一篇:ids for this class must be manually assigned before calling save()解决方法 下一篇:Thinking in java ----静态数据的初始化

Powered by Emlog & DDCF Theme By Jons