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
*/
}
}
查看全文
相关阅读:
js原型、原型链、继承的理解
实用的Object操作方法
数组操作方法汇总
ES6数组去重、字符串去重
ES6新增数据结构:Set和Map
canvas图片、文字在移动端显示模糊问题
Tabindex
javascript 单元测试初入门
ng-file-upload(在单文件选择,并且通过点击“上传”按钮上传文件的情况下,如何在真正选择文件之前保留上一文件信息?)
如何优化表单验证
原文地址:https://www.cnblogs.com/day/p/1517864.html
最新文章
连接池c3p0
连接池dbcp
装饰者模式
自定义连接池DataSourse
xml入门
JDBC操作数据库实例
prepareStatement设置参数,mysql数据出现中文‘?’的情景与解决方式
css 定位
css 属性选择器
Vue知识随记
热门文章
小程序WePY入门(一)
Angular入门(四) Router 替换当前页面
angularcli填坑系列(持续更新...)
Angular入门(三) 引入boostrap4
Angular入门(二) 服务
Angular入门(一) 环境配置
Vue 填坑系列(持续更新...)
Javascript面向对象编程(二):构造函数的继承
Javascript 面向对象编程(一):封装
Javascript面向对象编程(三):非构造函数的继承
Copyright © 2011-2022 走看看