c#重写,覆盖,隐藏,重载,继承

1.重写和覆盖:在c#中这两个是一个意思,重写就是覆盖,覆盖就是重写(在c++中是两个不同的概念)

2.隐藏:隐藏就是子类与父类的方法一样(子类函数名前加一个new),并且子类不是虚方法,那么子类就会隐藏父类方法

3.重载:方法名相同,参数列表不同

4.继承:c#中不允许多继承(接口可以)

下面看具体事例

1.重写(父类用virtual修饰(虚函数),子类用override修饰)
class Animal
    {
        
        public virtual void Voice()
        {
            Console.WriteLine ("Animal");
        }
    }
class House:Animal
    {
        public override void Voice()
        {
            Console.WriteLine ("House");
        }
    }
2.隐藏
子类可以隐藏父类的方法,不过在c#中会发出警告,添加一个new就ok了
使用new修饰,可以隐藏同名函数。

class ClassA//没有指定继承,则默认继承object
    {
        
        public void Method()
        {
            Console.WriteLine ("classA Method");
        }
    }
    class ClassB:ClassA
    {
       
        public new void Method()
        {
            Console.WriteLine ("classB Method");
        }
    }

3.重载(和c++一致)
参数列表不同包括:
1.参数个数相同,参数类型不同
2.参数类型相同,参数个数不同
原函数:

public void print(int x,int y){
   Console.WriteLine (x+y);
}

重载的函数
public void print(string s,string s2){
    Console.WriteLine (s+s2);
}


public void print(int x,int y,int z){
     Console.WriteLine (x+y+z);
}



转载于:https://www.cnblogs.com/shuaigezhaoguang/p/5869753.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值