接口在java编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明,那java中接口可以声明对象吗?下面来我们就来给大家讲解一下java接口的相关内容。
可以使用接口声明对象,但必须使用其实现类实例化,接口实例化报错。
为什么能用接口声明对象?
首先接口不能实例化对象这是毋庸置疑的,以下是几点原因:
1.实际语义是实例化一个实现该接口的匿名内部类,接口本身是用来抽象的,实例化接口没有意义。
2.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如Student s = new Student();此处声明Student对象s,并且实例化一个Student对象,实则是在堆中开辟出一块空间来存放Student对象,s则是指向这块空间,也就是内存中的一块地址。这块地址中所存放的值就是我们这个Student对象的一些属性。而接口是抽象,没有具体方法的实现,但是有静态变量。
3.本人认为类继承实现了接口就类似于子类继承父类(因为你继承接口的时候把方法重写了,就类似于直接季继承了父类,在这理解为向上转型。) 而且new dd()可以理解为一个匿名类,这样的话返回的值向上兼容,这样的话,接口引用c就指向了具体的实现接口的对象,多态的体现。
这样的好处在于通过接口c来调用的方法可以屏蔽掉具体的方法实现。换而言之,我只需要知道c要做什么,而不需要知道c怎么做。也就是在JAVA编程中经常用到的接口回调,即面向接口的编程,更为重要的一点是Collection c只是引用,是一个指向具体实现类的引用。
接口无法被实例化,但是可以被实现,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。最后大家如果想要了解更多java初识知识,敬请关注赋能网。