那位C#高手帮我编个程
解决时间 2021-06-08 22:36
- 提问者网友:最美的风景
- 2021-06-08 18:38
题目如下:
定义Person类,类中包含姓名,性别,出生年月字段,定义一个talk方法(方法的功能为输出“我会说中文”),定义一个带参数的talk方法(方法的功能为输出参数传递过来的我所掌握的语言);分别定义二个子类:一个是大学生类,大学生类中talk方法输出“我会说中文、英语、俄语”,一个是小学生类,小学生类中talk方法输出“我会说中文和英语”,分别创建以上类的实例,进行测试。
是关于C#多态性的;谢了
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-06-08 20:03
using System;
using System.Collections.Generic;
using System.Text;
namespace Person类
{
class Person
{
protected string name, sex, date;
public void talk()
{
Console.WriteLine("我会说中文");
}
public void talk(string language)
{
Console.WriteLine("我会说" + language);
}
}
class DaStudent:Person
{
public void talk()
{
Console.WriteLine("我会说中文、英语、俄语");
}
}
class XiaoStudent:Person
{
public void talk()
{
Console.WriteLine("我会说中文和英语");
}
}
class Program
{
static void Main(string[] args)
{
Person a = new Person();
Console.WriteLine("a是Person的实例,下面是a的行为:");
a.talk();
a.talk("日语");
DaStudent b = new DaStudent();
Console.WriteLine("a是DaStudent的实例,下面是a的行为:");
b.talk();
XiaoStudent c = new XiaoStudent();
Console.WriteLine("a是XiaoStudent的实例,下面是a的行为:");
c.talk();
}
}
}
全部回答
class Program
{
static void Main(string[] args)
{
Person p = new Person("张三","男","1960-09-01");
Person xiao = new Pupil("李四","男","1960-09-01");
Person da = new Academician("王五","男","1960-09-01");
p.talk("中文");
xiao.talk("中文","英文");
da.talk("中文","英文","俄语");
Console.ReadLine();
}
}
class Person
{
protected string _name;
protected string _sex;
protected string _birthStr;
public Person() { }
public Person(string name , string sex,string birth)
{
this._name = name;
this._sex = sex;
this._birthStr = birth;
}
public void talk(string language1)
{
Console.WriteLine("我叫:{0},是个{1}孩,生日是:{2},我会说{3}。",this._name,this._sex,this._birthStr,language1);
}
public virtual void talk(string language1, string language2)
{
}
public virtual void talk(string language1, string language2, string language3)
{
}
}
//小学生
class Pupil:Person
{
public Pupil() { }
public Pupil(string name, string sex, string birth)
{
base._name = name;
base._sex = sex;
base._birthStr = birth;
}
public override void talk(string language1, string language2)
{
Console.WriteLine("我叫:{0},是个{1}孩,生日是:{2},在读小学,我会说{3}和{4}。",base._name,base._sex,base._birthStr,language1,language2);
}
}
//大学生
class Academician : Person
{
public Academician() { }
public Academician(string name, string sex, string birth)
{
base._name = name;
base._sex = sex;
base._birthStr = birth;
}
public override void talk(string language1, string language2, string language3)
{
Console.WriteLine("我叫:{0},是个{1}孩,生日是:{2},在读大学,我会说{3}和{4}和{5}。", base._name, base._sex, base._birthStr, language1, language2, language3);
}
}
- 2楼网友:舊物识亽
- 2021-06-08 21:09
很容易啊,要自己去写的。写个学生类做父类,大学生小学生继承
我要举报
大家都在看
推荐资讯