北京理工大学金旭亮老师C#(69—OverloadAndOverride)

本文探讨了面向对象编程中父类与子类的概念,包括子类对象如何赋值给父类变量,以及子类与父类方法和字段的重载与重写。通过具体示例,展示了不同情况下子类如何覆盖或隐藏父类的方法和字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“父”与“子”

Animal an = null;
Lion lion = new Lion();
an = lion;  // 正确
lion = an;  // 编译时错误
Lion = (Lion)an;  // 正确
Monkey m = (Monkey)an;  //运行时错误
  • 子类对象可以赋值给父类(基类)变量,这实际上是“IS_A”关系的体现。

当子类、父类的方法名相同时,有两种情况:

  1. Overload(重载)
class Parent
{
    public void OverLoadF()
    {
    
    }
}

class Child : Parent
{
    public void OverLoadF(int i)
    {

    }
}

     2.Override(重写)

class Parent
{
    public virtual void OverrideF()
    {
    
    }
}

class Child : Parent
{
    public override void OverrideF()
    {

    }
}

 

子类父类方法/字段“一模一样”时......

class Parent
{
    public int value = 100;
    public void HideF()
    {
        System.Console.WriteLine("Parent.HideF()");
    }
}

class Child : Parent
{
    public int value = 200;
    public void HideF()
    {
         System.Console.WriteLine("Child.HideF()");
    }
}

// 父类变量引用子类变量,此变量访问的方法和字段均为父类当中的方法和字段

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值