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.什么是对象?从类中拿到的具有具体属性值得个体, ...
随机推荐
- 新来个技术总监,禁止我们使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范.日志规范 ...
- SendInput模拟键盘操作
#include <windows.h> int main() { HWND parentHwnd, childHwnd; INPUT input[4]; parentHwnd = Fin ...
- python 函数(实参与形参、传递参数)
函数 什么是函数?函数是带名字的代码块,用于完成具体的工作.写出一个函数后,就可以一直调用. 定义函数,函数的基本组成: 1.1 向函数传递参数 向函数中传递任意参数,这样打印出的结果就可以根据自己的 ...
- .NET异步程序设计之任务并行库
目录 1.简介 2.Parallel类 2.0 Parallel类简介 2.1 Parallel.For() 2.2 Parallel.ForEach() 2.3 Parallel.Invoke() ...
- 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- Html / XHtml 解析 - Parsing Html and XHtml
Html / XHtml 解析 - Parsing Html and XHtml HTMLParser 模块 通过 HTMLParser 模块来解析 html 文件通常的做法是, 建立一个 HTMLP ...
- Java TreeSet的使用
1.TreeSe自带排序的set,没有重复元素. 2.TreeSet 如果构造函数中没有使用比较器,那在装载的对象类中要实现Comparable 接口. 3.TreeSet 使用初始化比较器的方式. ...
- GNU C相关
GNU __attribute__ 用于在函数声明时,定义函数参数的一些特殊属性,比如,如果函数的某个参数可能用不到,那么,将该参数增加unused属性即可,如下(一般用两个括号包括属性unused) ...
- stm32f407使用Keil uV5建立工程日志
目录结构 Common ——包括延时函数等公用函数 STM32F4_FWLIB ——固件库 Project ——UV5工程相关文件 Main ...
- zabbix的mysql优化后的配置文件
zabbix的mysql数据库导致磁盘IO一直90%以上,访问卡的一逼 改了配置文件最后好了 [root@root /]# cat /etc/my.cnf [mysqld] datadir=/Data ...