C#继承 巨牛逼的教程

继承:属于面向对象三大特性之一 

基类:父类 Animal

派生类:子类  Dog

子类可以使用父类的属性和方法,同时也可以拓展自己的特性

如:动物类 ,会跑 ,会叫,

      狗类:会吃骨头(特性)

格式:

public class Animal
{
publc int Id{get;set;}//声明字段
public string Name{get;set;}//声明字段

//后面可以加父类的方法
}

public class Dog:Animal
{
//可以直接写拓展的属性 方法
}

虚方法:

当父类中的方法与子类中的方法命名一样时:

这里需要注意,和父类中公开的被用作继承的方法重名了,会覆盖掉父类中的方法转而调用自身的

关键词:

父类:virtual       子类: override

格式:

//父类:
public virtual void Eat(string food)
{
consolo.WriteLine($"{food}")
}

//子类:
public override void Eat(string food)
{
consolo.WriteLine($"{food}")
}

关键字:base

//base()代表父类的构造参数,加上参数就是访问父类的有参构造函数
public Dog(int id,string name,int age):base(id,name)
{
Age=age;
}

例题:

public  class Bird//父类
{
    //构造函数
    public string Cb;
    public string Liatui;
    public string Bizi;
    public Bird(string cb,string liatui,string bizi)
    {
        //this.可以省略
        this.Cb = cb;
        Liatui = liatui;
        Bizi = bizi;
    } 
}
public class Maque : Bird   //子类
{
    public int Age;//构造麻雀特有属性
    //base()方法
    public Maque(string cb, string liatui, string bizi,int age) : base(cb, liatui, bizi)
    {
        Age = age;
    }
}

静态类:

使用static关键字放在class关键字前

特点:

1.不需要被实例化

2.静态类中不能有实例的构造参数

3.静态类默认是封闭的 所以不能被继承

建议:一般在静态类中,静态方法较多,静态属性用的少

密封类:

关键字:sealed

特点:

1.不能扩展,不能被继承,但是可以继承其他的普通类

2.密封类中的成员,既可以是实例成员,也可以是静态成员

3.能够被实例化,可以有实例构造函数

抽象类:

关键字:abstract

抽象类的核心是预先定义一部分内容,让子类去实现,可以理解为现实中的“合约”,好处是:拓展程度更高,更适合代码的进阶

抽象方法只能定义,不能实现,不能拥有方法体,谁继承自该类,谁必须实现

继承自抽象类之后要把抽象类中抽象方法或属性实现,否则会报错

抽象方法和虚方法之间的区别:抽象方法是一个“隐藏”的虚方法,没有方法体,但是又能override,虚方法可以在普通类,抽象方法只能在抽象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值