一。封装

封装是将数据和方法集成到一个单元中我们称作类。封装的概念比较好理解,那么封装的用途呢?一般来说封装可以防止代码被我们

无意中破坏,通过属性和访问权限来控制。

封装的特点:

1.隐藏系统实现的细节,保证系统的安全性和可靠性。

2.提供稳定不变的对外接口。

3.封装保证了代码的模块化,提高了软件的复用性和功能的分离。

二。继承

感念就不多说了。继承主要是为了提高代码的复用性。

1.一般类继承。一个子类只能继承一个父类。

2.抽象类继承。一个子类只能继承一个抽象类,而且必须实现抽象类中的所有抽象方法。

3.接口继承。一个子类可以继承多个接口,而且必须实现接口的所有内容。

继承需注意:

  1. 密封类不可以被继承。
  2. 继承关系中,更多关注的是共性而不是特性,共性是层次复用的基础,特性是扩展的基础。
  3. 继承的层次必须有所控制,否则维护会比较复杂。
  4. 面向对象的原则:多组合,少继承,低耦合,高内聚。

继承需要注意的地方:

对象在实例化的时候会首先初始化父类的字段和方法然后再初始化子类的字段和方法而且这个过程是按字段的顺序来分配内存空间的,

不同的地方在于在初始化子类字段的时候会将和父类同名的字段加以区别,而初始化子类方法的时候会将同名方法进行重写。下面举个例子

来说明一下。

 public class dog{public string type = "dog";public virtual void GetType(){Console.Write("I am a {0}", type);}}public class bird : dog{public string type = "bird";public override void GetType(){Console.Write("I am a {0}", type);}}dog d = new bird();d.GetType();Console.Write("i am a {0}", d.type);

View Code

上诉代码大家可以自行验证一下输出结果。

三。多态

一般来说多态是通过接口和抽象类来实现的,多个子类对接口、抽象类方法的不同实现,使得在使用接口和抽象类时有了不同的实现方式。

多态比较好理解。这里就不做多余说明了。

转载于:https://www.cnblogs.com/bboy-coco/p/4107632.html

面向对象的特点封装、继承、多态相关推荐

  1. 第九课(面向对象):封装 继承 多态

    一.面向对象概念:根据模板(创建一个类)并实例化 这个思路就叫面向对象 二.使用面向对象编程好处: 可以重复使用(实例化类) 容易修改(只用修改类的模板) 三.面向对象的特点: 封装 继承 多态 类名 ...

  2. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  3. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  4. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  5. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  6. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  7. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

    编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...

  8. 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)

    面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...

  9. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  10. 面向对象 编程及面向对象三大属性:封装 继承 多态

    面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...

最新文章

  1. RxJava 操作符 do
  2. [linux][c语言]用socket实现简单的服务器客户端交互
  3. 独家 | 将时间信息编码用于机器学习模型的三种编码时间信息作为特征的三种方法...
  4. 服务器和客户端之间的变量交互
  5. CRM/PLM/SCM/MES与ERP的联系与区别
  6. k8s集群DNS无法解析问题的处理过程
  7. reg怎样存取注册表信息
  8. crudandroidandroid——CRUD(在上一篇博客的基础上)
  9. c#4.0新特性之一: Dynamic Lookup (1)
  10. Mozilla考虑支持H.264
  11. 面试官,求求你不要问我这么简单但又刁难的算法题了
  12. Eureka 微服务注册中心搭建
  13. floodfill算法 java_OpenCV 3 floodFill(漫水填充)、图片的放大缩小 pyrUp、pyrDown、Resize JAVA OpenCV专题学习10...
  14. 模式对话框与非模式对话框的创建方法
  15. 01-编写CMS注意事项
  16. ORAN传输封装类型
  17. 利用QQ群推广网站的经验分享
  18. Android使用AudioManager切换到听筒模式
  19. Qt QNetworkAccessManager 下载url
  20. 数据分析实战----北京租房数据统计分析

热门文章

  1. Google实用搜索秘技六则
  2. 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
  3. 二分查找树性能分析(Binary Search Tree Performance Analysis)
  4. 如何学好算法与程序设计
  5. vncviewer 连接到服务器授权失败的解决方法/一些常用命令
  6. PRML-github code使用两个小攻略
  7. 最大似然估计MLE和最大后验估计MAP理解
  8. 【正一专栏】为何我们要侥幸而又苟且地活着
  9. Leetcode 345. 反转字符串中的元音字母 解题思路及C++实现
  10. pip 安装报错,is not a supported wheel on this platform