c#中的new和override的实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; /*
简单说,抽象方法是需要子类去实现的。虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求。 抽象方法和虚方法都可以供派生类重写。
*/
namespace MySpace
{
class dad
{
protected string name; //成员变量 public dad(string n) //构造函数
{
name = n;
}
public void say() //基类say方法
{
Console.WriteLine("I am {0}.", name);
}
public virtual void growup() //基类growup方法 虚函数
{
Console.WriteLine("{0} has grown old.", name);
}
}
class son : dad //继承父亲
{
public son(string n) //构造函数
: base(n)
{
//name = n;
}
public new void say() //在派生类中定义的和基类中的某个方法同名的方法,使用 new 关键字定义
{
Console.WriteLine("I am {0} and a son.", name);
}
public override void growup() //重写(override)是用于重写基类的虚方法,这样在派生类中提供一个新的方法,继承类中的重写虚函数需要声明关键字 override
{
//base.growup();
Console.WriteLine("{0} is growing up.", name);
}
}
class entrance
{
public static void Main()
{
dad grandpa = new dad("grandpa"); //用父类生成的父类对象
grandpa.say(); //父类say方法的调用
grandpa.growup(); //父类growup方法的调用 Console.WriteLine("\nnew son(\"father\")");
dad father = new son("father"); //用子类生成的父类对象
father.say(); //调用父类方法,访问隐藏方法是父类的方法
father.growup(); //调用子类方法,访问重写方法是子类的方法 Console.WriteLine("\nson tom = new son(\"Tom\")");
son tom = new son("Tom"); //用子类生成的子类对象
tom.say(); //访问隐藏方法是子类的方法,访问重写方法是子类的方法
tom.growup(); //Console.ReadKey();
}
}
} /* I am grandpa.
grandpa has grown old. new son("father")
I am father.
father is growing up. son tom = new son("Tom")
I am Tom and a son.
Tom is growing up.
*
* 上边的结果: 1)用父类生成的父类对象,grandpa,访问隐藏方法是父类的方法,访问重写方法是父类的方法
2)用子类生成的父类对象,father,访问隐藏方法是父类的方法,访问重写方法是子类的方法
3)用子类生成的子类对象,son,访问隐藏方法是子类的方法,访问重写方法是子类的方法
请按任意键继续. . .
*/
这个实例比较好,因此特此转载。说明了new和override的区别。
c#中的new和override的实例的更多相关文章
- android中无限循环滑动的gallery实例
android中无限循环滑动的gallery实例 1.点击图片有变暗的效果,使用imageview.setAlpha(),并且添加ontouchListener public void init() ...
- Android中制作自定义dialog对话框的实例
http://www.jb51.net/article/83319.htm 这篇文章主要介绍了Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继 ...
- Android中的跨进程通信方法实例及特点分析(二):ContentProvider
1.ContentProvider简单介绍 在Android中有些数据(如通讯录.音频.视频文件等)是要供非常多应用程序使用的.为了更好地对外提供数据.Android系统给我们提供了Content P ...
- gvoory脚本中关于HttpClient使用详解实例
一.gvoory脚本中关于HttpClient使用详解实例 HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=n ...
- JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ...
- 处于同一个域中的两台Sql server 实例无法连接
处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while es ...
- RDIFramework.NET 中多表关联查询分页实例
RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...
- c#中virtual, abstract和override的区别和用法
virtual是把一个方法声明为虚方法,使派生类可重写此方法,一般建立的方法是不能够重写的,譬如类A中有个方法protected void method(){ 原代码....;}类B继承自类A,类B能 ...
- asp.net中生成缩略图并添加版权实例代码
这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下 复制代码代码如下: //定义image类的对象 Drawing.Image image,newimage; //图 ...
随机推荐
- 【笔试题】Overloading in Java
笔试题 Overloading in Java Question 1 以下程序的输出结果为( ). public class Test { public int getData() { return ...
- 测试代码的练习2——python编程从入门到实践
11-3 雇员:编写一个名为Employee的类,其方法__init__() 接受名.姓和年薪,并将它们都存储在属性中.编写一个名为give_raise()的方法,它默认将年薪增加5000美元,但也能 ...
- day50——js补充
day50 前端内容回顾 HTML 标签分类 块级标签:div p h1-h6 form hr br ul li ol table标签 内联标签:span a img label input sele ...
- JAVA知识点总结篇(一)
JVM(Java Virtual Machine):源文件->编译器->字节码文件->解释器->程序: JDK:Java Development Kit,Java开发工具包: ...
- C++错题记录
D. 通俗讲 , 前置++ : 先自增,再赋值 后置++: 先赋值,再自增 从反汇编中,可以看出: 前置++效率比后置++高 前置++: 自增后返回引用 后置++: 拷贝一份临时变量,再自增 ...
- Django开发之module
1.首先需要安装你要使用的数据的python模块组件 2.需要新建一个app 切换到工程根目录下,然后执行django-admin.py startpapp firstModule 编辑first/s ...
- mysql执行出错:Table 'k_user' is read only
执行sql的时候发现出错 Table 'k_user' is read only 1.给mysql权限 chmod 777 mysql 2.执行一下命令 mysqladmin -uroot -p re ...
- NEST 自定义分析器
public void SetAnalysis() { if (!client.IndexExists("employee").Exists) { client.CreateInd ...
- win 修改notebook路径
开始发现 notebook 默认的路径是 C:\Users\Administrator 需要修改 将目标中的%USERPROFILE% 直接删掉了
- 深入理解JVM(三) -- 对象的内存布局和访问定位
一 对象的内存布局: 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding). HotSpot的对 ...