通俗易懂的解释——面向对象的三大特征

此文章仅代表本人的理解,且语言描述并不会循规蹈矩,我会尽可能用人话来讲解我所理解的内容。

面向对象的三大特征:封装、继承、多态

相信你们都已经听到耳朵起茧了。

那么他们到底是个什么意思呢?

(一)封装:

        封装,说的是将部分不需要公开的信息或者方法,隐藏起来,通过额外的接口,提供访问或者使用的路径。

        举个例子,就说,把大象装进冰箱里(对外方法A),这是一个完整的方法,其内部可能会调用其他额外的方法,例如打开冰箱门(内部方法B)、将大象放入冰箱(内部方法C)、关上冰箱门(内部方法D)

        但是,你作为一个使用者,你需要了解里面的所有方法调用么?不需要,并且,比起我直接给你提供这3个方法逐一的调用,一个统一的接口他升级起来也更加的灵活,比如现在我需要多增加一个步骤,那么我只需要在对应的内部类里面调整即可,你依旧是调用把大象装进冰箱里(对外方法A)的这个接口。

(二)继承:

        继承的意思和实际的差不多,就是子类能够拥有父类的能力,并且支持独立扩展

        举个例子,市面上有各式各样的,有顶灯、台灯、酷毙灯。这些灯,它都有相同的功能,比如开灯,关灯。那么我们就可以抽取出灯,这样一个父类,这个父类里面提供开关灯方法,子类继承它,就能够直接拥有开关灯的功能,至于额外的功能如台灯它可以调节亮度、顶灯可以换颜色,等功能则可以放到子类去扩展。

        实现继承有两种方式,一种是继承对应的父类,另外一种是实现父接口,继承父类的方式好处是它能够拥有父类属性和方法,缺点是java是单继承的,有且只能继承一个父类。而接口方式的话,则可以多继承,但是仅仅是继承了其方法,具体的实现,依旧要自己编写。

(三)多态

        而多态说的是同一个行为不同的实例拥有不同的实现方式。

        它更加像是一个规则制度,例如现在学校有一个要求是不允许学生上课玩手机,那么教师A它的做法可以是上课前没收手机,而教师B它的做法可以是口头警告,这两个实例做的都是同一件事,就是不让学生上课玩手机,但是它的实现方式是不一样的。

        多态存在有三个必要的条件,分别是继承、重写和父类引用指向子类。

        抽象类中,填写抽象方法,但不实现。实现类继承这个抽象类,必须要重写这个抽象方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值