C#中的类与类的继承

类的定义

类是一种数据结构,它可以包含数据成员,函数成员。
类是一种数据类型
也代表着显示世界中的种类

类的构造函数与析构函数

  1. 无参构造函数
    默认的构造函数就是无参的构造函数,当我们编写了有参构造函数,会替代默认的无参构造函数,若仍需要无参构造函数,只需显示编写即可。 默认的构造函数就是无参的构造函数,当我们编写了有参构造函数,会替代默认的无参构造函数,若仍需要无参构造函数,只需显示编写即可。
  2. 有参构造函数
    根据需要定义与类中字段相应的构造函数
  3. 静态构造函数
    静态构造函数只能用来构造静态成员
static Student(){
}
  1. 析构函数
    对象释放内存空间时调用。
~ Student{
}

类声明(类定义)

  1. 类声明的位置
    声明在命名空间,最常用声明在命名空间,最常用
    声明在类的里面(成员类)
    也可以声明在命名空间外

  2. 类修饰符
    类修饰符 class 类名
    类修饰符:new public protected internal private abstract sealed static
    2.1 internal是访问级别限制在程序集中
    2.2 public公开
    2.3 private访问级别限制在类中
    2.4 protected 子类可以访问,应用在方法上,跨程序集

    类成员的访问级别是受类访问级别限制的。
    2.1 internal 和public
    class前面什么都没有,默认级别是internal。
    在两个项目A,B中,A应用了B,B中public修饰的类才能被A访问。
    2.2 sealed
    class 前面加sealed,这个类不能被继承

类的继承

  1. 继承的概念

子类对父类的成员全盘继承(构造器不被继承),并且对父类进行横向和纵向的扩展。横向扩展是成员的增加,纵向扩展是对父类方法版本的更新(重写)。
C#中一个类最多只有一个基类,子类的访问级别不能超过父类的访问级别。父类和子类的关系是 子类“ is a” 父类

    class Person//父类
    {
    }
    
    class Chinese : Person//Chines是子类
    {
    }
  1. 构造函数的执行顺序
    当创建子类的实例时,会先调用父类的构造函数,然后才执行子类的构造函数
    函数运行结果:
    执行父类的构造函数
    执行子类的构造函数
class Program
    {
        public static int pi = 12;
        static void Main(string[] args)
        {
            Chinese chinese = new Chinese();        
            Console.ReadKey();
        }
    }
    class Person//父类
    {
        public int _age;
        public Person()
        {
            Console.WriteLine("执行父类的构造函数");
        }      
    } 
    class Chinese : Person//Chines是子类
    {
        public Chinese()
        {
            Console.WriteLine("执行子类的构造函数");
        }    
    }
  1. 有参构造函数的继承
 class Person//父类
    {
        public int _age;
        public Person(int age)
        {
            this._age = age;
        }       
    } 
    class Chinese : Person//Chines是子类
    {
        public Chinese(int age):base( age)
        {
        }    
    }

猜你喜欢

转载自blog.csdn.net/weixin_41707267/article/details/84037864