C#面向对象详解
//封装就是将数据或函数等集合在一个个的单元中,我们称之为类,被封装的对象通常被称为抽象数据类型,
//封装的意义在于保护或防止代码被我们无意中破坏,
//封装既可以封装成员变量,又可以封装成员方法,
//封装成员变量步骤:
//新建类,面向对象最基本单元就是类,即.cs文件,像一个文本文档里面放置C#代码,创建的类默认访问修饰符为internal,隐藏显示,
//写构造函数,类的基本结构是构造函数,每一个类都有一个构造函数,默认隐藏,访问修饰符必须是public,并且不需要写任何返回值,方法名与类名一致,
//向类中填写信息,将成员变量访问修饰符声明为private后外界无法访问,声明访问修饰符为public的属性,Ctrl+R+E,
原文链接:https://www.cnblogs.com/qq450867541/p/6108019.html
//继承是类之间建立一种相交的关系,使得新定义的派生类的实例可以继承已有基类的特征并且还可以添加新的功能,
//继承特点:
//派生类是对基类的扩展,派生类可以添加新的成员,但不能移除已经继承的成员的定义,
//继承是可以传递的,如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中声明的成员,
//构造函数和析构函数不能被继承,除此之外其他成员能被继承,基类中成员的访问方式只能决定派生类能否访问它们,
//派生类如果定义了与继承而来的成员同名的新成员,那么就可以覆盖已继承的成员,但这并不是删除了这些成员,只是不能再访问这些成员,
//类可以定义虚方法、虚属性及虚索引指示器,它的派生类能够重载这些成员,从而使类可以展示出多态性,
//派生类只能从一个类中继承,可以通过接口来实现多重继承,
//继承时先执行父类构造函数,接着再执行子类构造函数,最后再执行方法,
//在派生类中访问基类中的成员一般有2种方式,一是调用base.<成员> 调用基类的方法,二是显示类型转换为父类,
//当派生类需要覆盖基类的方法时,C#使用new修饰符来实现隐藏基类成员,
//密封类,如果对类不作任何约束,也就是说所有类都可以被继承,这种继承的滥用会导致类的层次结构十分庞大,类与类之间的关系会变得很乱导致无法理解,因此C#提供了密封类,只需在父类前加上sealed修饰符,这个类就不能被继承了,密封方法也是在方法前加上sealed修饰符,
//抽象类和密封类刚好相反,它是为继承而生的,抽象类不能实例化,抽象方法没有具体执行代码,必须在非抽象的派生类中重写,也就是基类并不实现任何执行代码,只是进行定义,这一点和接口有相同的地方,
//如果类中有抽象方法,则类必须声明为抽象类,
//有时候不想把类声明为抽象类,但又想实现方法在基类里不具体实现,而是想实现方法由派生类重写,遇到这种情况时可使用virtual关键字将方法声明为虚方法,
//注意虚方法必须声明方法主体,抽象方法则不需要,
//在继承时,如果基类构造函数是有参数的,子类构造函数也必须有一个有参数的构造函数,否则会报错,
原文链接:https://www.cnblogs.com/fangyz/p/5271780.html
//多态
原文链接:
https://www.cnblogs.com/longteng1991/archive/2013/06/13/3131739.html
https://www.cnblogs.com/zhangkai2237/archive/2012/12/20/2826734.html
https://www.cnblogs.com/binyao/p/4891306.html
https://www.cnblogs.com/loveyue/archive/2009/04/19/1439025.html
C#面向对象详解的更多相关文章
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
- JS 面向对象详解
面向对象详解1 OO1.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- java之面向对象详解
#############java面向对象详解#############1.面向对象基本概念2.类与对象3.类和对象的定义格式4.对象与内存分析5.封装性6.构造方法7.this关键字8.值传递与引用 ...
- php开发面试题---php面向对象详解(对象的主要三个特性)
php开发面试题---php面向对象详解(对象的主要三个特性) 一.总结 一句话总结: 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸 ...
- C#基础-面向对象详解
面向对象详解 一.什么是面向对象 1>面向对象是一种程序设计思想 2>面向过程和面向对象是什么? 例如要把大象放冰箱怎么做? 面向过程:打开冰箱门->把大象扔进去->关上冰箱门 ...
- Python面向对象详解
Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是
- javascript面向对象详解
认识面向对象 1.面向对象中的概念 一切事物皆对象 对象具有封装和继承特性 信息隐藏 2.基本面向对象 3.函数构造器构造对象 深入了解面向对象 第一种书写格式 第二种书写格式
- javascript的面向对象详解
每次说到javascript到面向对象,总感觉自己心里懂,但是却不知道该怎么说,这就是似懂非懂到表现,于是乎,每次一说,就要到处去查找资料,零零碎碎到看了一些,感觉有懂了,但是过段时间,好像又不知道是 ...
- Python 面向对象详解
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象的编程语言,那你 ...
- PHP面向对象详解:继承、封装与多态
首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体, ...
随机推荐
- 毕业论文系列之基于WiFi的智能农业大棚管控系统设计代码
#include <dht11.h>//dht11库 #include <MsTimer2.h> //定时器库的 头文件 #include < ...
- vue中如何在本地导入js文件
import {setStore,setUser,getStore,removeStore} from "../../../public/localstory" 在导入js文件时, ...
- NanUI | NanUI 0.7 正式发布
2020年2月10日 NanUI 0.7版正式发布. 回顾过去的一年,浑浑噩噩.生活上.工作上太多的压力和变数让我身心疲惫,目睹亲人被病痛的摧残的痛苦,无法释怀的生死别离令我沉沦许久:公司业务的变动, ...
- ORACLE ITL事务槽
讲到ITL(事务槽)必定先说数据块,那么什么是数据块呢?先给大家上一个数据块结构图 数据块分别由块头.ITL(事务槽).表信息区.行信息区.块空闲区.行数据区组成,其中ITL用来记录在数据块发生的所有 ...
- Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html 最近有人问我关于这个的问题,就此写一篇blog Ansi字符串我 ...
- 懒人必备,IntelliJ IDEA中代码一键生成
之前有不少小伙伴问松哥微人事项目(https://github.com/lenve/vhr)使用的 MyBatis 逆向工程在哪里?其实旧版微人事当时没有使用逆向工程,是我自己手动敲出来的,当然手动敲 ...
- 【MySQL 原理分析】之 Trace 分析 order by 的索引原理
一.背景 昨天早上,交流群有一位同学提出了一个问题.看下图: 我不是大佬,而且当时我自己的想法也只是猜测,所以并没有回复那位同学,只是接下来自己做了一个测试验证一下. 他只简单了说了一句话,就是同样的 ...
- Python 代码风格规范(Google)
Python风格规范 分号 tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...
- layui父子页面方法互调
父级页面调用子页面方法 layer.open({ type: 2, content: 'test/iframe.html', success: function(layero, index){ var ...
- GDAL利用地理坐标读取图像像元值
最近的一个项目需要在电子海图中下载已知水深点,导出点的地理坐标(经纬度).然后在arcgis中打开这些地理坐标输出为shp,利用GDAL读取不同波段的点对应的像元值,从而构建水深和像元值的对应关系. ...