《Thinking In Java》读书笔记——类、抽象类、接口之间的过渡

本文深入讲解面向对象编程的三大核心概念:类、接口与抽象类。解析它们在软件设计中的角色,包括模板提供、行为抽象、多态实现及功能解耦,强调其在代码组织与重用中的关键作用。

概念:


类(class)

是对同一类型事物的抽象。例如,可以将,狗、猫、鸡、兔、鸟,统一称为 “动物” 这一类。因此,说是类还不如说“类型”更加形象,Class这个单词的解释就是:阶级;班级;种类;班。顾名思义,相同的阶级;班级;种类;班,即可认为它们是同一类型。当调用new关键字实例化之后,就生成了多个实例化的对象,所以说类是对象的模板(template),对象是类的实例(instance)。

接口(interface)

对一类事物行为的完全抽象。关注点在这一类事物都有什么行为,能做什么。对于如何实现不关心。例如,我们抽象“动物”这一类都有“叫”的行为:当狗的class实现这个接口时就要实现叫的方法,方法体为吠;当牛实现这个接口时就要实现叫的方法,方法体为哞,诸如此类。

我们要实现一些功能时经常是找接口,而不是先研究具体实现方式,例如:要把U盘数据传输到电脑上时,要找USB接口,而不是把电脑拆了去看电路;要给电脑内存扩容时,要找内存接口;跨公司的一些交流要找对应的接口人。

抽象类(abstract Class)

它处在类与接口之间,既关心对象的行为动作,又提供一些公共的方法(可以被重写)和属性。

作用:


类(class)

对事物抽象,为对象提供模板,通过修饰限定符(public、protected、friendly/default、private),进行内部封装和外部暴露。

接口(interface)

实现多态,通过向上转型的方式,对入参类型松耦合,结合编译器的后期绑定特性,增加代码的灵活性;

功能解耦,对于不关心具体实现的客户端,可以完全隐藏实现方式,如果后期需要修改实现代码,也可以在不影响客户端使用的情况下进行;

访问权限控制,防止代码被修改;

解决单继承的问题,如果要调用一个方法,但是方法的参数列表不支持当前类型,而当前类也已经继承过了(Object除外),这时就无法调用了,除非再创建一个wrapper,对当前类进行包装。如果参数列表中是接口类型的话,就没有这个问题,当前对象直接实现一下接口就可以了。

抽象类(abstract Class)

作为介于普通类和抽象类之间的一种状态,它可以实现一些功能,也可以声明抽象方法供子类发挥,适合用作功能性的基类。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值