C#面向对象特征之一——继承

当创建一个类时,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这 个已有的类被称为的基类/父类,这个新的类被称为派生类/子类
继承概述:
1.继承子承父业,子类可以继承父类的可继承属性、函数
2.但是并非完全继承,只有可继承的类成员才可以被继承,主要使用访问修饰符进行设置
3.继承实质上是对象与对象之间的关系,在开发的时候酌情实现继承
4.C#继承只能实现单继承,每个类只能继承一个父类,一个父类可以拥有多个子类
5.继承可以隔代继承
6.不允许相互继承(循环继承)
7.C#不允许多重继承,但是可以实现多重接口继承

基类和派生类

子类只能有一个直接父类,但一个父类可以有多个直接子类。继承是可以传递的。定义要从其他类派生的类时,子类会隐式获得父类的所有成员(除了其构造函数和终结器)。子类因而可以重用父类中的代码,而无需重新实现。在子类中,可以添加更多成员。通过这种方法,子类可扩展基类的功能。
eg:
基类(父类)

class Person
    {
        //构造函数
       /* public Person(){
            Console.WriteLine("此为Person构造函数");
        }*/
        public string personShuxin{get;set;}
        public string personShuxins { get; set; }
        public Person(string name)
        {
           // name = "这是基类构造函数传入的name参数";
            Console.WriteLine(name);
        }
        /*public string Fangfa()
        {
            Console.WriteLine("此是Person的方法");
            return "此是Person的方法,return返回的";
        }*/

        protected int Width;
        protected int Height;
        public void setWidth(int w)
        {
            Width = w;
        }
        public void setHeight(int h)
        {
            Height = h;
        }
    }

子类

class Son:Person
  {
      public Son(string name):base(name)
      {
          //base.Fangfa();
          Console.WriteLine("此为子类的构造函数-----------" );
         // Console.WriteLine(name);
      }
      public int getArea()
      {
          return (Width * Height);
      }
  }

基类的初始化
派生类继承了基类的成员变量和成员方法。因此父类对象应在子类对象创建之前被创建。您可以在成员初始化列表中进行父类的初始化。

对象初始化先执行子类构造,再进行父类构造,但是先是父类构造完成,再是子类构造完成
如果父类构造函数有形参,则子类必须要手写构造,并且带有相同的形参(形参的个数类型一致即可,不用管顺序,参数的命 名),然后在子类构造函数之后紧跟着写:base(),base括号中的参数代表给父类构造传递的参数,传递的参数顺序必须要 和父类中的形参顺序一致

密封类
通过在类定义前面放置关键字sealed,可以将类声明为密封类。当一个类被声明为sealed时,它不能被继承抽象类不能被声明为sealed。密封类可以叫做最终类

发布了117 篇原创文章 · 获赞 111 · 访问量 9646

猜你喜欢

转载自blog.csdn.net/dust__/article/details/103813093