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#关于虚方法和重写的实例说明(virtual 和override)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Con...

C# 虚方法(virtual)覆盖(override) - 隐藏(new) - 重载

using System; using System.Collections.Generic; using System.Text; using System.Threading; nam...

接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)

1.抽象类和虚方法的区别(abstract,virtual function) 看到抽象和虚这两词真的觉得有点抽象,有点犯迷糊.其实这两者还是很容易区分的. 1.abstract可以修饰class...

C#中的一些方法修饰关键字virtual override sealed new

对于方法(属性、事件) 1. 如想重写(扩展和修改继承)方法要求有两个     a. 基类必须是virtual     b. 继承类型的同签名方法必须override也就是说基类和继承类都必须同...

C#.NET 虚方法中中的virtual 和override关键字的使用

谈到C#.NET的虚方法就不得不先说一下继承性(inheritance),继承和多态度、封装一起构成面向对象程序设计的三大要素,继承指一个类基于一个已有的类按照需求添加和删除一些功能. 首先,我...

C#中子类对父类中虚方法的处理有重写(override)和覆盖(new),他们有什么区别?

在子类中用override重写父类中用virtual申明的虚方法时,实例化父类调用该方法,执行时调用的是子类中重写的方法; 如果子类中用new覆盖父类中用virtual申明的虚方法时,实例化父类调用该...

c#中override virtual static abstract sealed 的作用及代码分析

说明1: 表示静态的关键字 说明此对象在应用中只存在一份   说明2: C# 是面向对象的程序设计语言,每一个函数都属于一个类。 当一个方法被声明为Static时,这个...

c#中的interface abstract virtual override和new

interface用来声明接口 1.只提供方法的规则约束,不提供方法的主体。 例: public interface IPerson { void getName();/...

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

OO思想现在已经在软件开发项目中广泛应用,其中最重要的一个特性就是继承,最近偶简单的复习了下在C#中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来,方便大家查阅。 一、...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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