多态

继承:

什么是继承?

将几个类中重复的字段、属性、方法,单独封装成一个父类,让子类去继承(父类私有的内容不能继承)

比如Student、Teacher里面都有name,age,那我写一个它俩的父类Person把这些重复内容封装起来,让子类去继承,父类那有的,我子类实例化的时候直接可以拿来用。

子类有没有继承父类的构造函数?

子类虽然没有继承父类的构造函数,但是,子类会默认调用父类无参数的构造函数,创建父类对象,让子类可以使用父类的成员。

所以,如果在父类中重新写了一个有参数的构造函数之后,那个系统自带无参的构造函数就被干掉了,子类也就调不到了。

解决办法:

1)在父类中重新写一个无参数的构造函数。

2)在子类中显式的调用父类的构造函数,使用关键字:base(  )        //调用自己的用this,调用父类的用base

 public Student(string name,int age,char gender ) : base(name,age)
        {
            //子类Student需要name,age,gender参数
            //而父类Person已经有了name、age,已经被我显式的继承过来了
            //那我子类只需要写个自己的gender参数就行了
            this.Gender = gender;
        }

 

posted @ 2023-03-03 10:04  春哥博客  阅读(16)  评论(0)    收藏  举报