C#关于虚方法 virtual 和 override 重写 详解

原创 2013年12月03日 08:47:47
一上班就看书 一下班就看书……着魔了这是哈哈,我们都知道 如果在 base类中 使用了 虚方法 virtual 意味着可以在 子类中 用override 重写该方法,那如果不重写 改成new呢?来看下代码
class myClass//定义一个基类
{
	virtual public void print()
		{
			Console.WriteLine("myClass");
		}
}
class MyClass:myClass//定义子类 首先我们用隐藏父类中的虚方法
{
	new public void print()
		{
			Console.WriteLine("MyClass");
			base.print();//在子类的方法中调用父类被隐藏的方法
		}
}
然后我们在main方法中执行 myClass mc = new myClass(); MyClass Mc = (MyClass)mc; mc.print();Mc.print(); 输出结果 myClass MyClass myClass
接着 我们用 重写代替隐藏 输出结果为 MyClass MyClass myClass


                    

C# 重载(overload)与重写(override)

1 重写(override) 重写(overload)指子类方法对基类虚方法的重写。当基类中的方法被声明为虚方法(使用关键字virtual),该方法可以在任何子类中被重写。若子类需要使用父类中原有的...
  • tiana0
  • tiana0
  • 2013年11月17日 13:29
  • 2990

C++重写(override)、重载(overload)、重定义(redefine)以及虚函数调用机制【个人总结】

对于C++中经常出现的函数名称相同但是参数列表或者返回值不
  • loveRooney
  • loveRooney
  • 2014年07月30日 22:49
  • 4402

C#:区分:重写、覆盖和重载以及虚方法和抽象方法

(一)重写和覆盖:重写: 在声明时,父类的方法前面加上virtual关键字,子类的方法前面加上override关键字,且与父类方法同名,表示父类的方法可以被子类进行修改和重新定义。 覆盖: 在声...
  • Bambi12
  • Bambi12
  • 2017年01月16日 13:41
  • 970

虚方法【只有虚方法或者抽象方法才能被子类方法重写】

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Tes...
  • Fanbin168
  • Fanbin168
  • 2014年09月19日 16:58
  • 1545

C#基础巩固——重写(override)修饰与覆盖(new)修饰的区别

写在前面,在C#中派生类实例化时,首先会调用基类的构造方法,然后再调用派生类的构造方法。在C#中可以在派生类中对基类中使用virtual、override、abstract声明的方法进行重写(over...
  • wangwei6125
  • wangwei6125
  • 2017年07月08日 23:15
  • 186

c# 虚函数Virtual与重写override

C#代码   using System; namespace Smz.Test { class A { ...
  • u010613052
  • u010613052
  • 2016年04月26日 11:45
  • 1534

虚拟函数是否应该被声明仅为private/protected?

问题导入 我想对于大家来说,虚拟函数并不能算是个陌生的概念吧。至于怎么样使用它,大部分人都会告诉我:通过在子类中重写(override)基类中的虚拟函数,就可以达到OO中的一个重要特性——多态(po...
  • jinzhichaoshuiping
  • jinzhichaoshuiping
  • 2016年08月25日 09:06
  • 704

浅谈C#中new、override、virtual关键字的区别

OO思想现在已经在软件开发项目中广泛应用,其中最重要的一个特性就是继承,最近偶简单的学习了下在设计模式中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来。     一、New ...
  • u010853701
  • u010853701
  • 2014年04月30日 15:19
  • 2290

函数的复写(覆盖,重写)super、override_第20集

1.函数的复写 2.使用super调用父类的成员函数 class Person{ String name; int age; void introduce(){ Syst...
  • u011569040
  • u011569040
  • 2015年01月19日 09:21
  • 519

java方法调用之动态调用多态(重写override)的实现原理——方法表(三)

上两篇篇博文讨论了java的重载(overload)与重写(override)、静态分派与动态分派,这篇博文讨论下动态分派的实现方法,即多态override的实现原理。 java方法调用之重载、重...
  • fan2012huan
  • fan2012huan
  • 2016年03月30日 16:32
  • 4072
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#关于虚方法 virtual 和 override 重写 详解
举报原因:
原因补充:

(最多只允许输入30个字)