zoukankan
html css js c++ java
类的覆盖
using
System;
//
继承关键字
//
virtual : 声明基类的某个成员在派生类中能被覆盖
派生类继承了其基类的成员.如果派生类用同样的签名定义了一个成员,这个派生类成员就会覆盖基类成员.成员的签名包括它的名称,参数列表,参数类型和返回的类型.
如果一个派生类用同样的名称定义了一个成员,但是定义了与基类不同的参数列表,参数类型或返回类型,派生成员将会重载或者遮蔽该基类成员.如果某个基类成员仍然可用,另一个成员将会重载这个成员.如果派生成员代替了基类成员,另一个成员就会遮蔽这个成员.
能被覆盖的成员必须被声明为virtual(1).
namespace
FlashCards
{
/**/
///
<summary>
///
CirCle 的摘要说明。
///
</summary>
public
class
CirCle
{
float
fxCenter,fyCenter,fRadius;
public
CirCle()
{
//
//
TODO: 在此处添加构造函数逻辑
//
fxCenter
=
0
;
fyCenter
=
0
;
fRadius
=
0
;
}
public
float
Top
{
get
{
return
fxCenter
-
fRadius;}
//
fx
set
{fxCenter
=
value
+
fRadius;}
}
public
float
Left
{
get
{
return
fyCenter
-
fRadius;}
//
fy
set
{fyCenter
=
value
+
fRadius;}
}
public
virtual
float
Area()
{
return
(
float
)(System.Math.PI
*
Math.Pow((
double
)fRadius,
2
) );
}
public
float
Perimeter()
//
计算周长
{
return
2
*
fRadius
*
(
float
)System.Math.PI;
}
public
float
Radius
//
半径
{
get
{
return
fRadius;}
set
{fRadius
=
value;}
}
public
virtual
void
Center(
float
x,
float
y)
//
virtual : 声明基类的某个成员在派生类中能被覆盖
{
fxCenter
=
x;
fyCenter
=
y;
}
}
public
class
Sphere:CirCle
//
球体,圆
{
float
fCenter;
public
Sphere()
{
fCenter
=
0
;
}
public
override
float
Area()
{
return
(
float
)(
4
*
Math.PI
*
Math.Pow((
double
)
base
.Radius ,
2
) );
//
圆的面积
}
public
new
void
Center(
float
x,
float
y)
{
this
.Center (x,y,
0
);
}
public
void
Center(
float
x,
float
y,
float
z)
{
base
.Center(x,y) ;
fCenter
=
z;
}
public
float
Volume()
//
体积
{
return
(
float
)((
4
/
3
)
*
System.Math.PI
*
Math.Pow((
double
)
base
.Radius,
3
));
}
public
float
Front
{
get
{
return
fCenter
-
base
.Radius ;}
set
{fCenter
=
value
+
base
.Radius ;}
}
}
}
private
void
Button3_Click(
object
sender, System.EventArgs e)
{
CirCle myCircle
=
new
CirCle();
myCircle.Radius
=
2
;
myCircle.Center(
10
,
2
);
Response.Write(
"
圆的面积:
"
+
myCircle.Radius.ToString()
+
"
<br>
"
);
Response.Write(
"
圆的面积:
"
+
myCircle.Area()
+
"
<br>
"
);
Response.Write(
"
圆的周长:
"
+
myCircle.Perimeter()
+
"
<br>
"
) ;
Sphere mySphere
=
new
Sphere();
mySphere.Radius
=
10
;
mySphere.Center(
10
,
20
,
25
) ;
Response.Write(
"
mySphere Top :
"
+
mySphere.Top
+
"
<br>
"
) ;
Response.Write(
"
Left :
"
+
mySphere.Left
+
"
<br>
"
) ;
Response.Write(
"
Front :
"
+
mySphere.Front
+
"
<br>
"
) ;
Response.Write(
"
volume:
"
+
mySphere.Volume()
+
"
<br>
"
) ;
Response.Write(
"
surface area :
"
+
mySphere.Area()
+
"
<br>
"
) ;
Response.Write(
"
circumference :
"
+
mySphere.Perimeter()
+
"
<br>
"
) ;
}
查看全文
相关阅读:
windows系统调用 互斥体mutex
windows系统调用 利用事件对象实现进程通信
windows系统调用 调度优先级
<十四>JDBC_c3p0数据库连接池
<十三>JDBC_dbcp数据库连接池
<十二>JDBC_批量处理
<十一>JDBC_事务的处理+隔离
<十>JDBC_处理Blob类型数据
<八>JDBC_重构DAO查询方法
<七>JDBC_使用beanutils工具类操作javaBean
原文地址:https://www.cnblogs.com/furenjun/p/318307.html
最新文章
C#基础之通过任务开启线程
Unity的UGUI学习
学习坦克大战记录的一些知识点
插入排序
贪心算法解决活动选择问题
选择排序
C#基础之线程池开启线程的补充
C#基础学习之同步线程的补充
C#基础线程学习之异步委托线程补充
Socket简单学习之UDP通信
热门文章
倒计时计算
SL.XNA中的Popup
解决WP7的32位图像渐变色色阶问题
主方法
windows系统调用 遍历进程的虚拟地址
算法导论三剑客之 动态规划 01背包问题
windows系统调用 获取当前内存信息
windows系统调用 semaphore信号量
windows系统调用 临界区机制
算法导论三剑客之 分治算法 合并排序
Copyright © 2011-2022 走看看