首页 > 其他分享 >面向对象的特征和原则

面向对象的特征和原则

时间:2022-10-27 20:38:50浏览次数:42  
标签:原则 特征 子类 继承 多态 接口 面向对象 对象 手机


面向对象中的三个基本特征:封装、继承和多态

1、封装,将现实中事物抽象成计算机领域中的对象,对象同时具有属性和行为,这就是封装。在封装中,数据隐藏,对象只对外提供与其他对象交互的接口,把自身的一些属性和实现细节对外是隐藏的。这样对象内部数据就有不同级别的保护,防止了程序中某些部分被意外改变或者错误引用了对象的私有属性。

2、继承,实现对象复用性的一个方法,可以在不重复编写以实现某个功能的前提下,对功能进行复用或者拓展。

继承的实现有两种:实现继承和接口继承

实现继承就是直接使用基于类的属性和方法,无需额外的编码

接口继承是仅仅使用属性和方法的名称,但是子类必须提供实现的能力

3、多态(可替代性),当前在继承关系时,允许把父类对象看成和它一个或者多个子类对象同等。因此可以根据当前赋给父对象的子对象中具体特性以不同的方式运行。

多态的前提条件:

1)要有继承关系

2)要有方法重写

3)要有父类引用指向子类对象

多态的优势:

1)提高了代码的维护性

2)提升了代码的扩展性

但是多态中不能使用子类的特有属性和方法

面向对象的原则

单一功能原则:一个类的功能要单一,不要保罗万象;

开放封闭原则:一个类在扩展性方面应是开放的,而在更改方面应是封闭的。

例如在一个类中,原本只是实现服务端的功能,现在需要添加客户端功能。则应该在不修改服务端功能的前提下增添实现客户端功能的代码。那么在最初功能设计时应该把所有功能分开,公共部分抽离出来。

替换原则:子类可以替换父类并出现在父类能够出现的地方

依赖原则:具体依赖抽象,上层依赖下层。

比如:在A手机和B手机中,B手机无卡,但是B手机要用A手机中的网络,这时候B手机就不能直接使用A手机的网络(具体类);B手机应当设置打开WiFi,连接A手机的网络(B定义抽象接口,由A来实现,B仅仅是使用该抽象接口)

接口分离原则:模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

对象之间的关系

1、聚合关系,

2、组合关系,

3、继承关系。

4、依赖关系。


标签:原则,特征,子类,继承,多态,接口,面向对象,对象,手机
From: https://blog.51cto.com/u_12344418/5801918

相关文章

  • 面向对象编程
    面向对象编程以类的方式组织代码,以对象的组织(封装)数据封装、继承、多态修饰符返回值类型方法名(...){方法体返回值}方法的调用静态方法static非静态方法......
  • 软件工程第6章课后答案 面向对象需求分析
    **一、单项选择题**1.实体关系图侧重于对软件系统的()建模。功能行为质量数据[参考答案]数据2.下面关于数据流图建模规则的描述正确的是()。环境图建模的目标是分析......
  • 面向对象程序设计第二次blog
    一、前言这几次的PTA的作业以及考试涉及到的知识点由面向对象中对数据的封装、继承以及多态,还有抽象类以及对象容器也涉及到一些,与此同时还有关于正则表达式的内容。......
  • 面向对象程序设计笔记(c++)
    时间:2019/5/21学习要知其然,也要知其所以然。第一章对C的补充1.C++的输入输出2用const定义常变量3重载4引用5内置函数6作用域运算符7字符串变量8动态分配和撤消内存的运算符......
  • python实验报告(面向对象程序设计)
    实验报告实例01:通过类属性统计类的实例个数  结果:实例02:根据身高、体重计算BMI指数(共享版)  结果:   实例03:在模拟电影点播功能时应用属性  结果:......
  • 面向对象的程序设计
    1.创建大雁类并定义飞行方法classGeese:def__init__(self,beak,wing,claw):print("我是大雁类!我有以下特征:")print(beak)print(wing)......
  • C++ 面向对象高级开发(四) Sting类 浅谈
    StringClass 带指针的Class不能用默认拷贝  构造函数、拷贝构造、拷贝赋值、析构函数   浅拷贝导致内存泄漏两个指针指一个  深拷贝  ......
  • C++ 面向对象高级开发 (五) 栈堆、new和delete
                   ......
  • 「MySQL高级篇」MySQL索引原理,设计原则
    ......
  • Python进阶篇04-面向对象编程
    面向对象编程面向对象编程和面向过程编程的区别:类和实例类:抽象的、用于创建实例的基础模板,类里面可以定义这个类所拥有的基础的属性。实例:根据类而创建的具体的对象,实......