zoukankan      html  css  js  c++  java
  • C#面向对象编程

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

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

    封装

    • 封装是指把类内部的数据隐藏起来,不让对象实例直接操作,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类当作它的基类
  • 相关阅读:
    CentOS 6.7 如何启用中文输入法
    10w数组去重,排序,找最多出现次数(精华)
    win10虚拟机搭建Hadoop集群(已完结)
    Linux常用命令
    调用接口显示Required request body is missing
    Git 的使用
    Navicat创建事件,定时更新数据库
    mysql生成UUID
    时间戳与字符串相互转换
    牛客中的错题
  • 原文地址:https://www.cnblogs.com/youMo/p/10360397.html
Copyright © 2011-2022 走看看