c#的继承使用

目录

一、什么是继承

二、基类/父类和派生类/子类

三、基类和派生类的写法(使用继承)

四、调用基类构造器

五、类的赋值

六、虚方法和重写方法


一、什么是继承

程序设计中的继承问题就是分类问题,继承反映类和类的关系。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。当创建一个类时,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类/父类,这个新的类被称为派生类/子类。

二、基类/父类和派生类/子类

基类/父类 : 也可以理解成生活中的父亲,自身所拥有的一些属性方法会被继承;基类中的方法会成为派生类的一部分。
派生类/子类 : 也就是生活中的儿子,自己去继承了基类/父类的属性和方法,当然自身也会拥有自己的属性和方法。在c#中一个类最多只能从一个其它类派生,不允许从两个或更多的其它类派生,也就是说一个派生类只能从一个基类派生。除非将派生类声明为密封类,声明为sealed。

三、基类和派生类的写法(使用继承)

public class BaseClass//<修饰访问符> class <类名>
{
    public void Sun1()//基类中的一个方法
    {

    }
    public void Sun2()//基类中的两个方法
    {

    }
}
    public class DerivedClass: BaseClass//<修饰访问符> class <派生类名>:<基类名>
    {
        public void Fun()//这是基类没有的方法,派生类会继承基类的方法,同时也可以有自己的方法
        {

        }
    }

继承只使用于类不适用结构。不能定义由结构组成的继承链,也不能从类或其它结构派生出一个结构

四、调用基类构造器

除了继承得到的方法,派生类还会自动包含来自基类的所有字段。创建对象时这些字段通常需要初始化,一般用构造器执行初始化。为派生类定义构造器时,可用base关键字调用基类构造器。构造器

    public class BaseClass//<修饰访问符> class <类名>
    {
      public BaseClass(string name)//基类构造器
        {

        }
    }
    public class DerivedClass: BaseClass//<修饰访问符> class <派生类名>:<基类名>
    {
        public DerivedClass(string name):base(name)//调用基类构造器的派生类构造器
        {

        }
    }

五、类的赋值

可以将一种类型的对象赋值给继承层次中较高位置的一个类的变量,

            string x="10";
            DerivedClass h = new DerivedClass(x);
            BaseClass m = h;//BaseClass是DerivedClass的基类,所以可以赋值,反过来不可以

六、虚方法和重写方法

派生类用重写方法可重写基类中的虚方法

    public class BaseClass//<修饰访问符> class <类名>
    {
        public virtual void String()
        {

        }
    }
    public class DerivedClass: BaseClass//<修饰访问符> class <派生类名>:<基类名>
    {
        public override void String()
        {
            base.String();
        }


    }

注意:

虚方法不能私有;虚方法和重写方法的签名必须一致,必须具有相同的名称和参数类型,两个方法必须返回相同的类型;只能重写虚方法;

猜你喜欢

转载自blog.csdn.net/qq_57388481/article/details/127712826