C# 多态-继承多态

  1. 什么是多态?

       个人理解为:在程序语言继承关系中,子类能替代父类,表现出不同的行为。

        换句话说:在继承关系中,一个类被实例化被其子类替代,子类中有父类的虚方法重写,或者有父类同名方法(new),调用相同方法时候,
        将表现出子类或者父类中不同行为

  2. 老板,上代码
       
         static void Main(string[] args)
         {
                Console.WriteLine("Hello World!");
    
                //多态 子类能替代父类表现出不同的行为: 在继承关系中,一个类被实例化被其子类替代,子类中有父类的虚方法重写
                //将表现出子类的方法的行为;子类若有没有其父类虚方法的重写,将表现出父类方法的行为。
                {
                    //按实例化及继承关系正常访问,
                    Parent p = new Parent();
                    p.ParentMethod();
                    p.ParentMethod_virtual();
    
                    child c = new child();
                    c.ParentMethod();
                    c.ParentMethod_virtual();
                    c.ChildMethor();
                }
    
                //子类替代父类
                Parent pc = new child();
                pc.ParentMethod();// 1、访问父类原ParentMethod方法,忽略子类的new出来的
                pc.ParentMethod_virtual(); //2 、访问子类重写父类的虚方法;子类中未对父类虚方法的重写将访问父类的方法。
                //pc.ChildMethor(); //无法访问子类独有公用方法
    
         }
    
    
         public class Parent
         {
            public void ParentMethod()
            {
                Console.WriteLine("我是父方法 ParentMethod");
            }
    
            public virtual void ParentMethod_virtual()
            {
                Console.WriteLine("我是父方法 ParentMethod_virtual");
            }
         }
         public class child : Parent
         {
            public new void ParentMethod()
            {
                Console.WriteLine("我是子方法 new ParentMethod");
            }
    
            public override void ParentMethod_virtual()
            {
                Console.WriteLine("我是子方法 override ParentMethod");
            }
    
            public  void ChildMethor()
            {
                Console.WriteLine("我是子方法 childMethor");
            }
         }
  3. 运行结果
  4. 总结
    不管类 、还是接口继承、抽象类继续 ,多态的这种行为使用非常广泛,设计模式中处处皆是

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值