关于c#类对象的继承和vistual小例子

本文详细解析了C#中子类继承父类构造函数、虚拟方法的重载以及实例化对象时的执行流程。通过示例代码演示了如何在子类中覆盖父类的方法,并解释了构造函数和方法调用的顺序。
using System;
class A
{
    public A()

    {

        P();

    }
    public virtual void P()
    {    }
}
class B : A
{
    int x = 1;
    int y;
    public B()
    {        y = -2;
    }
    public override void P()
    {
        Console.WriteLine("x={0},y={1}", x, y);
    }

}

说明几点:

1.子类B继承父类A,那么在实例化(就是给Bnew一个对象的时候),B要去调用,A的构造函数,那么显示声明A的构造函数就不能默认或者是私有的类型private;

2.在虚拟函数vistual的P函数,在子类里面是必须重载的override,也就是,A父类不写函数体,也可以写,大多子类来写,并且要加上override,不是overriding;

3.然后在实例化对象的时候,在继承这里面,都是首先初始化父类,然后是子类。

4.如果 new B().P();那么结果是什么?结果是:1,0  1,-2 。这里说明一下,这个y可能是任意值,在构造A的时候,不一定是0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值