.net中类方法重写是怎么做到的 给个例子

给个例子... 给个例子 展开
 我来答
Diobo
2009-01-30 · TA获得超过552个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:473万
展开全部
定义一个圆的类,定义计算周长和面积的方法,实例化一个pan对象.再从此类派生出一个wheel类,并重写基类的一个方法,还有调用基类的方法,并实例化一个carWheel对象
//针对点:面向对象程序设计的初步接触,重点记住一些格式
using System;
using System.Collections.Generic;
using System.Text;

namespace oneTest
{

public class circle //定义一个circle(圆)的类
{
double pi = 3.14;//定义pi为double型,值为3.14
double r=0.0;//初始化半径r

virtual public void L()//定义一个virtual的公有无返回值方法名为L的无参方法,如果你打算在派生类中扩展改写此方法,一定要加上virtual关键字
{
Console.Write("请输入半径r=");//在屏幕上输出括号内的字符串
r=double.Parse(Console.ReadLine());//这里用了double的Parse方法,因为我们输入的内容是字符串类型,而r是double型,所以要调用Parse方法执行类型转换
Console.WriteLine("周长为{0}",2*pi*r);//计算周长并输出
}

public double S()//定义一个公有返回值类型为double型的方法名为S的无参方法
{
Console.Write("请输入半径r=");//在屏幕上输出括号内的字符串
r = double.Parse(Console.ReadLine());//这里用了double的Parse方法,因为我们输入的内容是字符串类型,而r是double型,所以要调用Parse方法执行类型转换
return pi * r * r; //这个表达式为double型,把它返回.有返回值的方法在方法体中一定要return一个与方法声明中类型相同的值
}

}

public class wheel:circle //定义一个wheel类,继承自circle类,冒号前面是派生类,冒号后面是基类
{//虽然此类体中没有r,pi,但是实际上已经继承过来了
string brand;//派生类中新增加的属性
override public void L()//重写L方法,要加override关键字
{
Console.Write("轮子的品牌是:");
brand=Console.ReadLine();
base.L();//base关键字是用来调用基类中的方法
Console.WriteLine("{0}牌轮子还不错",brand);
}
}

class Program
{
static void Main(string[] args)
{
circle pan = new circle();//实例化一个circle类的对象pan
pan.L();//这是对象调用其方法的格式,一定要记住
Console.WriteLine("pan的面积为{0}", pan.S());//注意pan.S()的用法,有返回值的方法本身就是一个方法类型的值

wheel carWheel = new wheel();//实例化一个wheel类的对象carWheel
carWheel.L();//调用对象中的方法

}
}
}
chenyao20333
2009-01-30
知道答主
回答量:39
采纳率:0%
帮助的人:11.7万
展开全部
并不是所以的类都可以重写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式