首页 > 编程知识 正文

java基础的 多态,封装,继承 特征是什么,如何理解面向对象程序设计中封装,继承,多态

时间:2023-05-06 01:44:15 阅读:190802 作者:1880

Java封装继承多态及面向对象的一些理解

Java基本特性三个:封装、继承、多态。但是初看这三个字面意思非常难理解其精髓。即使看了很多例子也是一知半解的感觉。本文主要就自己理解说一下这三个特性的含义。

封装
理解封装先要理解关联关系依赖关系。在一个类里面加一些属性、方法。但是重点来了,关键就是这些属性是什么,他们可能也是类,那就会存在关联关系。关联关系又分为单向、双向、组合、聚合关系。这是一系列has a的关系。这个封装类可能就具备了这些has类的特性或者功能;当然也可能依赖其他对象进行使用,这是use a的关系。那对应New的实例对象,就复杂多样,完全就是一个全新的概念。基于这些特性,封装把方法封装在内部,把业务逻辑封装,把数据处理、计算过程封装,而对外只暴露一个方法(或者叫API接口),以实现解耦,外部不需要知道内部的实现,比如SSH里面的分层的概念。还有就是这些是继承和多态的基础知识,所以要先理解封装。

继承

这个相对来说好理解,就是父亲—>儿子,儿子会父亲的,然后又可以有自己的东西。但是重点又来了,继承不是乱用的,非常容易增加耦合性。要解释这个耦合性又要去理解Java类单继承和接口的多实现两个概念。单继承还好理解,但是多实现这个概念理解非常有难度。这里又要说道Java基本原则,都是继承于Object。这个就是单继承,它不能继承两个父类。但是问题就在这里,由于不能继承两个,那Java的复用特性会大打折扣的,我就是要继承两个怎么办,Java给出的解决办法就是接口多实现。接口又是什么,有这么一句话继承是对象的抽象,接口是方法的抽象。我的理解是一个纵向的扩展,一个横向的扩展。所以现在大家都喜欢接口,因为可以实现多个。如果你要继承,一旦要扩展共有的新的特性或者功能,那就要改父类,违背开闭原则。又多了开闭原则的概念,所以说继承看似简单,其实是封装的一个升华。面向对象的高度体现。什时候用继承?又有一句话就是:所有用子类传值的地方都可以用父类替代,那就用继承。

多态
多态个人觉得是最难理解的,因为它是建立在封装和继承之上的进一步提高。多态的体现正是面向对象的体现。建一个类不叫面向对象,用类实现多态才是精髓。重点来了,简单的多态就是利用继承实现多态,我可以传父类多个子类向上转型。但是这只是一小部分多态的体现,关键体现在接口。接口,这个词取的非常博大精深,所用实现了接口的类,跟这个接口多态,由于又可以多实现接口,这个极大的让多态活跃于各大代码中。要充分理解多态,个人觉得要结合设计模式,这个是最直接最好的方式。设计模式里面,可以说把封装、继承、多态结合起来的实际案例。

面向对象
再唠叨一下面向对象,面向对象相对于面向过程来说,对事物的抽象化,然后又实例化。听起来很拗口,但是是精髓所在。举个例子,比如程序里面要实现猫叫。传统的编程基本上就是一两行搞定,写一个方法或者直接在主程序里面写输出猫叫alert(“喵”)。但是如果有100个地方要用到,那你就要写100遍没错,但如果100个地方都要改成“喵喵叫”,那你就悲剧要改100个地方了,虽然有工具全局替换什么的,但是难免有漏错的地方,这就是面向过程。而面向对象,它统一的定义一个抽象类猫,具体猫是其中的一个对象,new一下就有。好了,这100个地方都是引用这个类,new自己的小猫,并且让它叫。最后猫都叫了,但是执行的方法都是这个类里面的猫叫方法!这下改成喵喵叫,你只要改一个地方了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。