概念:
类(class)
是对同一类型事物的抽象。例如,可以将,狗、猫、鸡、兔、鸟,统一称为 “动物” 这一类。因此,说是类还不如说“类型”更加形象,Class这个单词的解释就是:阶级;班级;种类;班。顾名思义,相同的阶级;班级;种类;班,即可认为它们是同一类型。当调用new关键字实例化之后,就生成了多个实例化的对象,所以说类是对象的模板(template),对象是类的实例(instance)。
接口(interface)
对一类事物行为的完全抽象。关注点在这一类事物都有什么行为,能做什么。对于如何实现不关心。例如,我们抽象“动物”这一类都有“叫”的行为:当狗的class实现这个接口时就要实现叫的方法,方法体为吠;当牛实现这个接口时就要实现叫的方法,方法体为哞,诸如此类。
我们要实现一些功能时经常是找接口,而不是先研究具体实现方式,例如:要把U盘数据传输到电脑上时,要找USB接口,而不是把电脑拆了去看电路;要给电脑内存扩容时,要找内存接口;跨公司的一些交流要找对应的接口人。
抽象类(abstract Class)
它处在类与接口之间,既关心对象的行为动作,又提供一些公共的方法(可以被重写)和属性。
作用:
类(class)
对事物抽象,为对象提供模板,通过修饰限定符(public、protected、friendly/default、private),进行内部封装和外部暴露。
接口(interface)
实现多态,通过向上转型的方式,对入参类型松耦合,结合编译器的后期绑定特性,增加代码的灵活性;
功能解耦,对于不关心具体实现的客户端,可以完全隐藏实现方式,如果后期需要修改实现代码,也可以在不影响客户端使用的情况下进行;
访问权限控制,防止代码被修改;
解决单继承的问题,如果要调用一个方法,但是方法的参数列表不支持当前类型,而当前类也已经继承过了(Object除外),这时就无法调用了,除非再创建一个wrapper,对当前类进行包装。如果参数列表中是接口类型的话,就没有这个问题,当前对象直接实现一下接口就可以了。
抽象类(abstract Class)
作为介于普通类和抽象类之间的一种状态,它可以实现一些功能,也可以声明抽象方法供子类发挥,适合用作功能性的基类。
本文深入讲解面向对象编程的三大核心概念:类、接口与抽象类。解析它们在软件设计中的角色,包括模板提供、行为抽象、多态实现及功能解耦,强调其在代码组织与重用中的关键作用。
2万+

被折叠的 条评论
为什么被折叠?



