0. 面向对象

本文详细探讨了面向对象编程中的核心概念——封装、继承和多态。封装强调对象的隐藏和保护,继承允许子类继承父类的属性和方法,而多态则提供了运行时的灵活性,使得相同接口可以有不同的实现。此外,文章还对比了继承与接口实现的差异,并讨论了对象复用的组合和代理方式,分析了各自的优缺点。
摘要由CSDN通过智能技术生成

封装、继承、多态

1.多态

指:同一个方法在不同对象有不同的实现,是一种运行期的状态;

有类继承接口实现两种方式;

2.继承(extends)和接口实现(interface & implement)

extends:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类;长期大量的使用继承会给代码带来很高的维护成本;

implement:如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们的实现这个接口,各自实现自己具体的处理方法来处理那个目标;

interface: 定义抽象方法

接⼝中允许定义变量(接⼝中定义的变量会在编译的时候⾃动加上 public static final 修饰符,所以,它们是不能修改的)
接⼝中允许定义抽象⽅法
接⼝中允许定义静态⽅法(Java 8 之后)
接⼝中允许定义默认⽅法(Java 8 之后)

3.对象的复用

继承组合代理三种的表现形式;

继承结构中,父类的内部细节对于子类是可见的,是一种白盒式代码复用;如果基类的实现发生改变,那么派生类的实现也将随之改变。这样就导致了子类行为的不可预知性;

组合是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能,因为在对象之间,是一种黑盒式代码复用;

优缺点比较:

组 合 关 系继 承 关 系
优点:不破坏封装,整体类与局部类之间松耦合,彼此相对独立缺点:破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性
优点:具有较好的可扩展性缺点:支持扩展,但是往往以增加系统结构的复杂度为代价
优点:支持动态组合。在运行时,整体对象可以选择不同类型的局部对象缺点:不支持动态继承。在运行时,子类无法选择不同的父类
优点:整体类可以对局部类进行包装,封装局部类的接口,提供新的接口缺点:子类不能改变父类的接口
缺点:整体类不能自动获得和局部类同样的接口优点:子类能自动继承父类的接口
缺点:创建整体类的对象时,需要创建所有局部类的对象优点:创建子类的对象时,无须创建父类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值