面向过程与面向对象及面向对象三大特性
2019-10-12 08:39:28来源:博客园 阅读 ()
面向过程与面向对象及面向对象三大特性
#########################################################
今天复习一下面向对象的特性以及与面向过程的区别,并对其中的一些细节内容进行回顾!!!
#########################################################
一、面向过程与面向对象的区别?
面向过程:是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程中数据和对数据的操作是分离的。
1)优点:性能比面向对象高,因为在类调用是需要实例化,开销比较大,比较消耗资源。
2)缺点:没有面向对象易维护、易复用、易扩展。
面向对象:是将事物对象化,通过对象通信来解决问题。面向对象编程中数据和对数据的操作是在一起的。
1)优点:由于面向对象有继承、封装、多态的特性,可以设计出低耦合的系统,使系统更更灵活,更易于维护。
2)缺点:性能比面向过程低。
二、面向对象三大特性:继承、封装、多态
1.继承:子类继承父类非私有的属性和方法,子类可以添加自己的属性和方法,子类可以重新定义父类的方法。
1)注意:Java中是单继承,即一个子类只能继承一个父类;Java中object类是所有类的直接或间接父类;每一个子类被实现按时(new),父类会在它之前实现(被new)。
构造函数不能被继承,子类可以通过super()显式调用父类的构造函数;创建子类时,默认调用父类的无参构造函数;如果父类没有定义无参构造函数,子类必须在构造函数的第一行使用 super()显式调用(先父后子)。
2)为什么需要继承呢?
第一,代码复用;第二,父类的引用变量可以指向子类对象。
2.封装:即隐藏对象的属性和实现方法,仅对外提供公共的访问方法。
1)为什么需要封装呢?
封装符合面向对象设计的单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,它们只调用开放的接口,而不用去关心内部的实现。
2)实现:将属性私有化;仅提供公开的方法(一个负责获取内容(get),一个负责修改内容(put))访问私有属性。
3)优点:提升了代码的安全性和隐私性;能减少耦合;类内部的结构可以自由修改;
3.多态:一个对象在不同时刻体现出来的不同状态(一对多的关系)(父类引用子类对象)
1)实现:
重写:子类重写父类方法的实现,它是一种垂直层次关系。
重载:指一个类中,存在方法名相同,但参数(个数、顺序、类型)不同的方法,它是一种水平层次关系。
2)重写和重载的区别?
重写是一种垂直关系,它是子类重写父类的方法,要求结构相同;而重载是一种水平关系,它是类内部书写多个相同名称的方法,它们通过形参列表来区分。
3)在形参声明过程中,一般会声明的范围比较大,就可以传递父类也可以传递子类,代码的通用性就比较强。
4)多态可以分为两种类型:编译时多态(方法的重载)和运行时多态(方法的重写)。
运行时多态依赖于继承、重写和向上转型,向上转型是自动的,Father f = new Children(),不需要强转;向下转型需要强转,即Children c =(Children) new Father()。
5)Java中重写的两同两小一大规则:
a. 方法名相同、参数列表相同;
b. 子类方法返回类型<=父类方法返回类型
c. 子类方法抛出异常<=父类方法抛出异常
d. 子类方法访问权限>=父类方法访问权限
声明为final和static的方法不能被重写;如果一个方法不能被继承,则不能被重写。
原文链接:https://www.cnblogs.com/HuiH/p/11661624.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 通过与C++程序对比,彻底搞清楚JAVA的对象拷贝 2020-06-11
- Java笔记:集合 2020-06-10
- Java基础复习——类和对象 2020-06-09
- JSP九大内置对象 2020-06-07
- java对象指向问题 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash