面向对象理解,封装、继承、多态知识总结

面向对象

类就是对象在程序中的模拟实现,类决定了对象将要拥有的属性和行为

类是一种数据类型,用户自定义的数据类型

类的组成:字段、属性、方法、构造函数等

对象时具体的,是类的具体实例。对象具有属性(特征)和方法(行为)

一、面向对象的三大特征:

  1. 封装

类和对象本身就是封装的体现

(1)属性封装了字段

(2)方法的多个参数封装成了一个对象

(3)将一堆代码封装到了一个方法中

(4)将一些功能封装到了几个类中

(5)将一些具有相同功能的代码封装到了一个程序集中(dll、exe),并且对外提供统一的访问接口(属性名、方法名等)

(6)封装减少了大量的冗余代码

  1. 继承

(1)继承是指类与类之间的关系

(2)继承带给我们的好处

① 继承减少了类中的冗余代码

② 让类与类产生了关系,为多态打下了基础

(3)继承的特性

① 单根性 :一个子类只能有一个父类

② 传递性:爷爷类 爹类 儿子类

(4)里式转换

指定一个父类类型,指向一个子类的对象/ 将子类对象赋给父类

只要子类继承父类,那么子类的对象可以赋值给父类

①       子类可以赋值给父类

② 如果父类中装的是父类对象,则可以将这个父类转换为对应的子类对象

③ 里式转换关键字

  1. is:返回bool类型,指示是否可以做这个转换
  2. As:如果转换成功,则返回对象,否则返回null

④ 作用:我们可以将所有的子类都当做是父类来看,针对父类进行编程,写出通用的代码,适应需求的不断变化

  1. 多态

(1)多态的作用:把不同的子类对象都当做父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适用需求不断变化

(2)多态就是指不同的对象收到相同的消息时,会产生不同的行为,同一个类在不同的场合下表现出不同的行为特征

二、虚方法

  1. 虚方法需要注意的几点

(1)父类中如果有方法需要让子类重写,则可以将该方法标记为virtual

(2)虚方法在父类中必须有实现,哪怕是空实现

(3)虚方法子类中可以重写(override),也可以不重写

三、抽象类

抽象类中可以有抽象方法,也可以没有抽象方法,抽象方法不能实现

  1. 抽象方法:

(1)抽象方法需要用abstract关键字标识

(2)抽象方法不能有任何方法实现

(3)抽象成员必须包含在抽象类中

(4)由于抽象方法没有任何实现,所以子类必须将抽象方法重写

(5)抽象类不能实例化

(6)抽象类中可以包括抽象方法,也可以包括非抽象方法

(7)抽象类不能为静态类,即不能用static修饰

(8)抽象类有构造函数,虽然不能被实例化

(9)抽象成员的访问修饰符不能是private

(10)子类继承抽象类后,必须把父类中的所有抽象成员都重写,除非子类也是一个抽象类,则可以不重写

(11)父类不确定子类如何实现自己的行为,就将其行为定义为一个抽象的函数

四、接口

  1. 接口中只能包含方法(属性、事件、索引器也都是方法)
  2. 接口中的方法不能有任何实现
  3. 接口不能被实例化,也就是说接口不能(new)创建对象,跟抽象类一样,因为创建对象没有意义
  4. 接口是一种规范也是一种能力
  5. 接口具有功能单一性
  6. 接口中的成员不能有任何访问修饰符(默认为public)

  1. 继承接口的子类必须将接口中的所有成员方法都实现

  1. 子类实现接口的方法时,不需要任何关键字,直接实现即可
  2. 接口存在的意义就是为了多态

五、关键字

  1. new

① 创建对象

——》在堆中开辟空间

——》在开辟的堆空间中创建对象

——》调用对象的成员

② 隐藏父类的成员

  1. This

① 代表当前类的对象

② 显示的调用用自己的构造函数

  1. Base

① 显示调用父类的构造函数

② 调用父类的成员

原文地址:https://www.cnblogs.com/wjrelax/p/8806401.html

时间: 2024-08-29 17:51:25

面向对象理解,封装、继承、多态知识总结的相关文章

面向对象之封装,继承,多态的理解

封装 1.什么是封装 封装(encapsulation)又叫隐藏实现(Hiding the implementation).就是只公开代码单元的对外接口,而隐藏其具体实现. 其实生活中处处都是封装,手机,电脑,电视这些都是封装.你只需要知道如何去操作他们,并不需要知道他们里面是怎么构造的,怎么实现这个功能的. 2.如何实现封装 在程序设计里,封装往往是通过访问控制实现的.C++,Java,AS3中都有 Public, Protected, Private 等访问控制符.通过用Public将信息暴

C#面向对象编程 封装 继承 多态

  C#面向对象编程 什么是面向对象? 面向对象编程是上个实际六十年代继面向结构编程之后提出的一个新的编程思想 封装,继承,多态 封装,继承,多态是面向对象编程的核心: 封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型 意义是:保护数据不被破坏(例如一台电视机我们能使用它但是不能随意改变内部的电路) 关键字:private,public,protected,internal Public string name;

面向对象之 封装 继承 多态

#!/usr/bin/env python # _*_ coding:utf-8 _*_ class Role(object): #继承object类 ac = None #脚本一执行跟着类一起存到了内存 类变量 #类变量和实例变量的区别: #类变量脚本执行跟着类一起存到了内存,不管是否调用都存在,实例变量是存在实例内的, def __init__(self,name,role,weapon): #初始化方法 实例化后自动执行 #self 代表实例本身.谁调用就是谁. name role,wea

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

面向对象三大特性(封装/继承/多态)

引入:在面向对象思想中,有三大特性,封装  继承  多态. 思考:我们在使用类和对象实现编程的时候,到底是遵循这什么样的逻辑呢?为什么要这样规范类呢? 引入:面向对象很重要的思想就是隐藏,即外部不知道类内部是如何实现业务逻辑的,只管调用和使用结果,这个就是面向对象三大特性之一:  封装 1.封装[掌握] 定义:封装,字面意思就是将内容装到某个容器中,并进行密封保存,在面向对象思想中,封装指数据和对数据的操作捆绑到一起,形成 对外界的隐藏,同时对外提供可以操作的接口. 1.数据:即要操作的数据,在

初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM,字节码 两个命令: javac helloworld.java:将Java文件编译为字节码的.class文件 java helloworld:运行Java程序...??暂时这么认为 数据类型: 普通数据类型:int a=3; 对象数据类型:使用关键字new,String s=new String("

面向对象的三大特性---封装继承多态

面向对象的三大特性---封装继承多态 首先我们来创建一个控制台程序 新建一个父类Person 创建一个子类继承父类Person 子类: main函数: 输出结果: 根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数. 继承的传递性 例如: A:B,B:C,则A:C ⅰ.继承过来之后被隐藏,有意隐藏加一个关键字"new",如果加了关键字"new",就告诉子类,父类里面的sayHi只能被隐藏,不能被覆写  ⅱ.继承过来之后被覆写/重写,覆写需要在父类里面

类与对象 面向对象和面向过程对比 面向对象三大特征:封装 继承 多态

 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门 面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象 1. 面向过程: 一切以事物的流程为核心. 核心是"过程"二字, 过程是指解决问题的步骤, 即, 先?干什么, 后干什么. 基于该思想编写程序就好比在编写一套流水线. 是一种机械 式的编程

php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体,称为对象,对象是一个具体的个体 所以,面向对象即我们专注对象来处理问题,通过从一个个具有属性和功能的类中拿到对象来处理问题. 下面我们再来细说下面向对象的三大特征:继承/封装/多态 一.继承 在PHP中我们主要通关E

Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ? 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以称为基类或超类,新建的类称为派生类或子类. ? 在Python中实现继承非常简单,在声明类的时候,在类名后面添加一个小括号,就可以完成继承关系.单纯的从代码的层面上来看当两个类具有相同的功能或者特征的时候就可以使用继承.提取一个父类,这个父类中编写者两个类相同的部分,然后两个类分别去继承这个类就可以