zoukankan
html css js c++ java
C# new and override
/// 测试点
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
/// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)
public
class
baseClass
{
public
baseClass()
{
MethodOfOverride();
MethodOfNew();
}
public
virtual
void
MethodOfOverride()
{
Console.WriteLine(
"
baseClass:MethodOfOverride
"
);
}
public
void
MethodOfNew()
{
Console.WriteLine(
"
baseClass:MethodOfNew
"
);
}
}
public
class
derivedClass : baseClass
{
public
int
value;
public
derivedClass()
{
value
=
2
;
}
public
override
void
MethodOfOverride()
{
Console.WriteLine(
"
derivedClass:MethodOfOverride value=
"
+
value.ToString());
}
public
new
void
MethodOfNew()
{
Console.WriteLine(
"
derivedClass:MethodOfNew value=
"
+
value.ToString());
}
}
/**/
///
<summary>
///
测试点
///
(1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
///
(2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)
///
</summary>
class
Program
{
static
void
Main(
string
[] args)
{
Console.WriteLine(
"
*********baseClass tempClassA = new baseClass()*********
"
);
Console.WriteLine(
"
----------------初始化输出----------------------
"
);
baseClass tempClassA
=
new
baseClass();
Console.WriteLine(
"
----------------下面方法输出------------------------
"
);
tempClassA.MethodOfOverride();
tempClassA.MethodOfNew();
Console.WriteLine(
"
*********derivedClass tempClassB = new derivedClass()*********
"
);
Console.WriteLine(
"
----------------下面初始化输出----------------------
"
);
derivedClass tempClassB
=
new
derivedClass();
Console.WriteLine(
"
----------------下面方法输出------------------------
"
);
tempClassB.MethodOfOverride();
tempClassB.MethodOfNew();
Console.WriteLine(
"
*********baseClass tempClassC = new derivedClass()*********
"
);
Console.WriteLine(
"
----------------下面初始化输出----------------------
"
);
baseClass tempClassC
=
new
derivedClass();
Console.WriteLine(
"
----------------下面方法输出------------------------
"
);
tempClassC.MethodOfOverride();
tempClassC.MethodOfNew();
Console.Read();
//
/**/
/*
输出结果
*********baseClass tempClassA = new baseClass()*********
----------------初始化输出----------------------
baseClass:MethodOfOverride
baseClass:MethodOfNew
----------------下面方法输出------------------------
baseClass:MethodOfOverride
baseClass:MethodOfNew
*********derivedClass tempClassB = new derivedClass()*********
----------------初始化输出----------------------
derivedClass:MethodOfOverride value=0
baseClass:MethodOfNew
----------------下面方法输出------------------------
derivedClass:MethodOfOverride value=2
derivedClass:MethodOfNew value=2
*********baseClass tempClassC = new derivedClass()*********
----------------初始化输出----------------------
derivedClass:MethodOfOverride value=0
baseClass:MethodOfNew
----------------下面方法输出------------------------
derivedClass:MethodOfOverride value=2
baseClass:MethodOfNew
*/
}
}
查看全文
相关阅读:
SQL常用优化手法
winform 文件上传
在主线程中开启同步任务,为什么会阻塞线程
KVC与KVO
android shape的使用
如何导入开源工程
图片资源的设定
如何进行程序的反编译和防止反编译
log的管理
通过反射机制拿到被隐藏的类(获取应用程序的缓存大小)
原文地址:https://www.cnblogs.com/day/p/1517864.html
最新文章
require.js与sea.js的区别
Greenplum源码安装(CentOS 7)
每日总结-android读取assets文件
每日总结-Android获取手机Mac地址
每日总结-控件去背景代码
每日总结-scaleType属性
单例模式
android开源库
用xml创建带圆角和阴影的按钮背景
【Android】Android开源项目分类汇总
热门文章
Java回调机制解析
android中小知识集合
SQLServer 2012 偶然发现小问题解决办法
九个Console命令,让js调试更简单
jQuery 中的 unbind()
转载(ASP.NET原理)
JS对象编程
Web前端优化最佳实践及工具集锦
调用exe传参,控制打开exe个数
搜索引擎命令大全!
Copyright © 2011-2022 走看看