接口也是为了实现多态。
java中的接口:由于java继承的单根性,因此需要接口来实现多继承。
C++中:由于本身C++是支持多继承的。因此抽象类就是接口。
java中的接口,是抽象的
并不实现任何功能,类似于C中创建类时的方法声明但有区别。
在后期实现中,以通常的情况由于java不能再接口中实现方法
因此方法都要在所继承的类中实现,如果继承的接口太多,要写的方法就很多
虽然可以用抽象类来解决问题但是仍然不能解决类中方法过多的问题。
C++中由于可以直接多继承类,我可以在类中实现方法,就目前看来接口的
应用上C++优于java。(现在java有可以在接口中实现方法的关键字,也证明了这一点)
//接口的使用练习中发现的一些问题
java接口
第一:由于接口必须是抽象的因此定义时只需要使用关键字interface来创建接口
在接口文件中只需定义方法声明,类似于C++的函数声明即可,这点相当于C++
中的在类文件中建立一个纯虚函数,区别在于由于java中抽象类为单独的一个属性
所以如果此类不是抽象类而又继承了接口则必须实现。
第二:继承接口的方式也很简单,使用implements 接口名,接口名并实现接口中所有的方法
就可以了。要注意的点仍然是,你如果不想实现接口中全部的方法,你需要使用abstract来使
这个类变成一个抽象类。
第三:接口中可以是可以定义属性的,但是必须使用static final修饰为常量,并且必须赋初值。
C++接口
由于C++中是可以多继承的。因此:
第一:抽象类其实就是接口。我们可以根据需要把抽象类定义成虚函数或纯虚函数来决定我们到底
要不要实现。在创建接口上与创建类并无差异。
第二:由于可以直接多继承的特性我们在类中是可以直接创建属性并加以继承的,这点是很方便的。
接口的使用:
二者在接口的使用上并无太大的差异
都需要使用new来连接
java 接口名 变量名=new 实现接口的对象名()
C++接口名类型的指针* 变量名=new 实现接口的对象名()
※指针记得释放 指针记得释放 指针记得释放
个人感受阶段:
不管是java还是c++接口都是一个被动型的存在,因此我们在使用中可以
java:接口名 变量名
C++:接口指针 变量名
创建接口,而不直接实现对象,后期为接口赋值(对象)即可。
实际利用的感觉类似USB万能接口。