博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
方法重写,隐藏在子类父类中的各种调用实践
阅读量:6469 次
发布时间:2019-06-23

本文共 907 字,大约阅读时间需要 3 分钟。

一.子类和父类方法之间的关系

1.当子类和父类有方法完全相同的方法

namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            B b = new B();            A a = new A();            A c = new B();            b.Show();            a.Show();            c.Show();            Console.Read();        }    }    public class A    {        public void Show()        {            Console.WriteLine("执行A的Show方法");        }    }    public class B : A    {        public void Show()        {            Console.WriteLine("执行B的Show方法");        }    }}

这里先给出运行的结果:

由此可以得出结论:

①当子类和父类的方法完全相同时,调用的时候取决于声明的类型(“=”左边),而不是实例化的类型。

②这样情况应该尽量避免,编译器会警告,但是不会妨碍程序的执行。

③当有同名的字段时,同样使用new来消除警告

 可以使用new关键字消除警告,但是运行结果一样。

2.virtural方法和override方法调用

修改代码如下:

View Code

执行结果:

由此可以知道:重写以后,调用哪个类的方法取决于实例化的类型(“=”右边)或者是转换后最终的类型

本文转自Rt-张雪飞博客园博客,原文链接http://www.cnblogs.com/mszhangxuefei/archive/2013/01/08/csharp-5.html如需转载请自行联系原作者

张雪飞

你可能感兴趣的文章
桌面支持--excel自动换行
查看>>
虚拟化--003 vcac licence -成功案例
查看>>
windows server 2003各版本及2008各版本的最大识别内存大小
查看>>
OSChina 周六乱弹 ——揭秘后羿怎么死的
查看>>
centos查找未挂载磁盘格式化并挂载
查看>>
IT人员的职业生涯规划
查看>>
sorry,you must have a tty to run sudo
查看>>
ios开发中使用正则表达式识别处理字符串中的URL
查看>>
AI会让我们失业吗?
查看>>
项目中的积累,及常见小问题
查看>>
Python类型转换、数值操作(收藏)
查看>>
Resin配置
查看>>
objective-C 类别/协议。
查看>>
sersync+rsync实时备份
查看>>
城市交通治安卡口系统解决方案
查看>>
阿里巴巴的导购效果跟踪
查看>>
万方安全:信息系统的风险评估过程与评估方法
查看>>
flex布局下的flex-grow、flex-shrink、flex-basis属性详解
查看>>
是什么样的骚操作让应用上线节省90%的时间
查看>>
netty Reactor模式(源码死磕3)
查看>>