A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 甘斌斌 中级黑马   /  2013-6-16 07:47  /  2392 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

7、 从学生,老师,校长类中抽象出人的类,学生和老师都有收作业的方法,但是校长不会收作业。

4 个回复

倒序浏览
  1.     class Program
  2.     {   //从学生,老师,校长类中抽象出人的类,学生和老师都有收作业的方法,但是校长不会收作业。
  3.         static void Main(string[] args)
  4.         {
  5.             Student s = new Student();
  6.             s.GetHomework();

  7.             Teacher t = new Teacher();
  8.             t.GetHomework();

  9.             HeadMaster hm = new HeadMaster();
  10.             hm.GetHomework();

  11.             Console.ReadKey();
  12.         }
  13.     }
  14.     abstract class Person
  15.     {
  16.         public virtual void GetHomework()
  17.         {
  18.             Console.WriteLine("我不收作业!");
  19.         }
  20.     }
  21.     class Student:Person
  22.     {
  23.         public override void GetHomework()
  24.         {
  25.             Console.WriteLine("我是学生代表,来收作业的");
  26.         }
  27.     }
  28.     class Teacher : Person
  29.     {
  30.         public override void GetHomework()
  31.         {
  32.             Console.WriteLine("我是老师,我负责收学生代表送来的作业!");
  33.         }
  34.     }
  35.     class HeadMaster : Person
  36.     {
  37.     }
复制代码
当然你可以不声明Person类为抽象类
还可以把virtual关键字改成abstract,那么就不能有方法体,等待派生类去重写
回复 使用道具 举报
楼上正解
回复 使用道具 举报
定义一个人的抽象类,里面有老师,校长,学生共有的特性。定义一个接口接口里面定义一个收作业的方法。老师和学生继承人的类和实现收作业的方法的接口,校长只继承人的类就ok了啊。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
楼上正解{:soso_e116:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马