目录
抽象思维,是人类思维达到高级阶段产生的一种能力,例如,当小孩子思维尚未成熟时,他们只能掌握具体概念,他们在学习代词“你、我、他”时往往遇到困难,因为代词具有较高的抽象性。
抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。
对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为abstract类了。
访问修饰符 abstract class ClassName { }
访问修饰符 abstract class ClassName { 访问修饰符 abstract 返回值类型 方法名(参数列表…); }
子类继承抽象类之后,必须重写父类的抽象方法,重写的方法有可能会是代码重复的情况,不符合代码复用的要求
定义接口的语法:
[访问修饰符] interface 接口名 extends 父接口1,父接口2,…{ //常量定义 //方法定义 }
类实现接口的语法:
[访问修饰符] class 类名 extends 父类名 implements 接口1,接口2,…{ //类成员 }
接口表示一种约定
生活中,我们使用的两相电源插座,规定了
两个接头间的额定电压
两个接头间的距离
接头的形状
接口表示一种约定
面向接口编程就是先把客户的业务逻辑线提取出来,作为接口,业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,替换该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。
接口体现了约定和实现相分离的原则
面向接口编程就意味着:开发系统时,主体架构使用接口,接口构成系统的骨架,这样就可以通过更换实现接口的类来实现更换需求。
面向接口编程的优点:
相同点:
不同点: