黑马程序员技术交流社区
标题:
子类和父类存在同名但没有重写关系的方法的时候,那么会调用哪个方法?
[打印本页]
作者:
殘遛の丶狳味
时间:
2013-8-9 13:36
标题:
子类和父类存在同名但没有重写关系的方法的时候,那么会调用哪个方法?
子类和父类存在同名但没有重写关系的方法的时候,那么会调用哪个方法?
作者:
leayon
时间:
2013-8-9 14:37
这种要判断程序运行过程的问题,其实自己亲自写代码就明白了。你可以创建一个父类和子类,然后建立不同的对象,运行一下就会出来。我刚写的代码如下:
class Father //父类
{
public void Show()
{
Console.WriteLine("调用父类方法!");
}
}
class Son : Father //子类
{
public void Show() //子类和父类的方法重名的话,这里会有一个警告,但程序可以运行
{
Console.WriteLine("调用子类方法!");
}
}
class Program
{
static void Main(string[] args)
{
Father person1 = new Father(); //分别创建不同的对象来调用它们的方法
person1.Show();
Father person2 = new Son();
person2.Show();
Son person3 = new Son();
person3.Show();
Console.ReadKey();
}
}
复制代码
程序运行结果如下:
子类和父类.jpg
(8.61 KB, 下载次数: 44)
下载附件
2013-8-9 14:37 上传
作者:
zhangcheng5468
时间:
2013-8-9 18:12
如果是派生类变量的话调用的子类方法,如果是父类变量的话调用的是父类的方法,如果是同名不重写建议在子类方法声明中使用new关键字!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2