博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#面向对象编程
阅读量:4979 次
发布时间:2019-06-12

本文共 794 字,大约阅读时间需要 2 分钟。

面向对象语言三个基本特征

  • 封装: 把客观物封装成类,并将类内部的实现隐藏,以保证数据完整性;
  • 继承: 通过继承可以复用父类(基类)代码
  • 多态: 允许将子类对象赋值给父类对象的能力

封装

  • 封装是指把类内部的数据隐藏起来,不让对象实例直接操作,C#中提供了属性机制来对类内部的状态进行操作.

继承

  • 一个类可以继承另一个类(密封类除外),子类将获得基类除构造函数额析构函数以外的所有成员.此外静态类是密封的,所也也不能被继承.
  • 子类的初始化顺序
    • 初始化类的实例字段
    • 调用基类的构造函数,如果没有指明基类,则调用System.Object的构造函数
    • 调用子类的构造函数

多态

  • 使用virtualoverride关键字实现方法重写
    • 只有基类成员声明为virtualabstract时,才能被派生类重写;而如果子类想改变虚方法的实现行为,则必须使用override关键字
    • 使用sealed关键字可以阻止派生类重写虚成员
    • 如果想在派生类中定义与基类成员同名的成员,则可以使用new关键字把基类成员隐藏起来
    //基类public class Horse :Animal{    public  void Eat()    {        Console.WriteLine("基类Eat");    }}//派生类public class Horse :Animal{    //使用new关键字把基类成员隐藏    public new void Eat()    {        Console.WriteLine("派生类Eat");    }}

所有类的父类

  • 在C#中,所有的类都派生自System.Object类.如果定义的类没有指定任何基类,则编译器会自动将Object类当作它的基类

转载于:https://www.cnblogs.com/youMo/p/10360397.html

你可能感兴趣的文章
RT3070 USB WIFI 在连接socket编程过程中问题总结
查看>>
MIS外汇平台荣获“2013年全球最佳STP外汇交易商”
查看>>
LeetCode 题解之Add Digits
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>
JS验证图片格式和大小并预览
查看>>
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块...
查看>>
编写高质量代码--改善python程序的建议(六)
查看>>
windows xp 中的administrator帐户不在用户登录内怎么解决?
查看>>
接口和抽象类有什么区别
查看>>
Codeforces Round #206 (Div. 2)
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
设计类图
查看>>
类对象
查看>>
[Voice communications] 声音的滤波
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
[SDOI2008]洞穴勘测
查看>>