关于C#继承运用的总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C#继承运用的总结相关的知识,希望对你有一定的参考价值。

整体代码部分:

解决方案:

技术分享

父类Person类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 第六章__联系
{
    class Person
    {
        //姓名
        public string Name { get; set; }
        //年龄
        public int Age { get; set; }
        //无参构造
        public Person()
        {

        }
        //带参构造
        public Person(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }
    }
}

    

子类Chinese类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 第六章__联系
{
    class Chinese:Person
    {
        public Sex Sex { get; set; }
        public Chinese()
        {

        }
        public Chinese(string name,int age,Sex sex):base()
        {
            this.Name = name;
            this.Age = age;
            this.Sex = sex;
        }
    }
}

  

性别Gender的枚举类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 第六章__联系
{
    
        public enum Sex
        {
            男,女
        }
    
}

  

Main函数:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 第六章__联系
{
    class Program
    {
        static void Main(string[] args)
        {
            Chinese chinaese = new Chinese("张三",20,Sex.男);
            Console.WriteLine(chinaese.Name+"\\t"+chinaese.Age+"\\t"+chinaese.Sex);
            Console.ReadLine();
        }
    }
}

  

总结:

1.什么是继承?

  继承,就是一个类可以使用另一个类的属性和方法(也就是另一个类的成员)

2.子类继承父类的符号

  为冒号(:)  

    
    class Chinese:Person        //子类Chinese继承父类Person的属性和方法

  

3.当new子类构造的时候,底层发生了什么?

  图解:

  技术分享

 

  当new子类构造时,程序会自动指向子类的构造,但不进入子类的构造体赋值,

  然后转向父类的构造,进入父类的构造体,执行父类的构造体的内容,

  再回到子类的构造,执行子类的构造体,

  子类的构造体执行完毕后,

  跳转到Main函数中,

  最后在内存中构建出子类的对象

4.子类并不是能继承父类的所有项:

  子类不能继承父类的构造函数,

  子类刻意继承父类的私有成员,但不能访问到

5.访问修饰符:

   修饰符    当前类    其他类    子类

   private    可以     不可以    不可以

   public      可以       可以     可以

   protected   可以     不可以    可以

6.base关键字

  base可以调用父类的属性和方法,可以调用父类的构造函数

7.base()括号内的内容

  base(传参顺序和父类构造一致,变量名和子类构造参数一致)

  

8.在子类调用构造的时候,默认会用base()调用父类的无参构造

9.当为父类的属性赋值的话,可以使用base代替this赋值

 

end~

以上是关于关于C#继承运用的总结的主要内容,如果未能解决你的问题,请参考以下文章

C#类的运用,继承,多态,方法重写

C# 获得目录创建时间的源码片段

java中封装,继承,多态,接口学习总结

关于继承的总结

关于C++中的虚拟继承的一些总结

关于scala中的class和trait的一些总结