/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《类继承中方法体的重写——C#第四周》
* 作 者: 刘江波
* 完成日期: 2012 年 9 月 23 日
* 版 本 号: v1.2
* 对任务及求解方法的描述部分
* 问题描述:
重写:定义与父类同名且签名也相同的方法,但父类的方法前用virtual或abstract进行了修饰,子类的同名方法前用override进行了修饰,这种情况被称为方法的重写或覆盖。
* 程序头部的注释结束
*/
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { CStudent stud1 = new CStudent(); CTeacher teacher1 = new CTeacher(); stud1.SetInfo(); stud1.GetInfo(); teacher1.SetInfo(); teacher1.GetInfo(); Console.ReadKey(); } } class CPerson { public string Name { get; set; } public int Num { get; set; } public char Sex { get; set; } public virtual void SetInfo() { Console.WriteLine("请按要求录入信息."); Console.WriteLine("请输入姓名:"); Name = Console.ReadLine(); Console.WriteLine("请输入编号:"); Num = int.Parse(Console.ReadLine()); //Num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入性别:"); Sex = Convert.ToChar(Console.ReadLine()); } public virtual void GetInfo() { Console.WriteLine("输出信息...."); Console.WriteLine("姓名:{0}", Name); Console.WriteLine("编号:{0}",Convert.ToString(Num)); Console.WriteLine("性别:{0}",Convert.ToString(Sex)); } } class CStudent : CPerson { public double Score; //增加分数 public override void SetInfo() { Console.WriteLine("请按要求录入学生信息."); Console.WriteLine("请输入姓名:"); Name = Console.ReadLine(); Console.WriteLine("请输入编号:"); Num = int.Parse(Console.ReadLine()); //Num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入分数:"); Score = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入性别(1代表男,2代表女):"); Sex = Convert.ToChar(Console.ReadLine()); } public override void GetInfo() { Console.WriteLine("输出学生信息...."); Console.WriteLine("姓名:{0}", Name); Console.WriteLine("编号:{0}", Convert.ToString(Num)); Console.WriteLine("成绩:{0}", Convert.ToString(Score)); Console.WriteLine("性别:{0}", Convert.ToString(Sex)); Console.WriteLine(); } } class CTeacher : CPerson { public int TeachYear;//增加教龄 public override void SetInfo() { Console.WriteLine("请按要求录入教师信息."); Console.WriteLine("请输入姓名:"); Name = Console.ReadLine(); Console.WriteLine("请输入编号:"); Num = int.Parse(Console.ReadLine()); //Num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入教龄:"); TeachYear = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入性别(1代表男,2代表女):"); Sex = Convert.ToChar(Console.ReadLine()); } public override void GetInfo() { Console.WriteLine("输出教师信息...."); Console.WriteLine("姓名:{0}", Name); Console.WriteLine("编号:{0}", Convert.ToString(Num)); Console.WriteLine("教龄:{0}", Convert.ToString(TeachYear)); Console.WriteLine("性别:{0}", Convert.ToString(Sex)); } } }