面向接口思想
面向接口,在java中是一个很重要的一种思想。在学习了类的继承以后,我们会发现,继承中只能实现单向继承,即一个父类可以有多个子类,但是一个子类只能有一个父类,当我们要用类来进行多个继承的操作的时候,我们就应该用到面向接口的思想。
接口的主要目的是为了实现解耦,根据“高内聚,低耦合”的原则,我们在代码中应尽量降低类与类之间的耦合性,说明白点,就是为了降低日后代码维护的难度,如果代码之间联系过于紧密,那么在修改某个类中的内容时,极其容易影响其他类的运作,而造成”水波效应“。所以面向接口的思想就能避免这些问题。
再说说接口是为何能减少耦合性的。在接口中我们定义的类修饰用的是interface来修饰,一改之前的“class”。例如:
public interface text{
虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。这点可以让我们将接口看做是一种只包含了功能声明的特殊类。
接口中成员的特点
1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量,其值不能改变。
2、接口中可以定义方法,方法也有固定的修饰符,public abstract
3、接口不可以创建对象。因为接口中没有具体的方法。
4、子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类,抽象类同样不能通过new实例化对象。
接口的多实现
当一个类需要多继承时,只能通过接口来解决。在接口体系中,我们把这称之为类的多实现。例如:
public calss zi implements A,B{}
解决了类的多继承的问题。当然在实现接口的同时,类同样也可以继承。例如:
public calss zi extends fu implements A,B{}
接口的多继承
类与类之间可以通过继承产生关系,接口和类之间可以通过实现产生关系,那么接口与接口之间同样可以有继承关系,而且可以多继承。例如:
public interface fu1{
void function()
}
************************************
public interface fu2{
void function2()
}
************************************
public interface fu3{
void function3()
}
************************************
public interface zi extends fu1,fu2,fu3{
void function4()
}
zi类除了自身的function4()方法外,还继承了fu1,fu2,fu3的抽象方法。
总结
面向对象是java基础中比较早接触面向对象的思想。让我们在敲代码中有了更清晰的逻辑,规范代码逻辑的同时,为以后减少了不必要的错误。特别是在大型项目中,接口的思想更显重要。实现代码的模块化,功能分区等等…
好了,这次的《猿享》——面向接口也讲得差不多了,如果有不同意见的小伙伴欢迎评论区见,我也是一个刚刚在新手村捡了装备的小白而已,如有错误,感谢能得到伙伴们的指正!!!