黑马程序员技术交流社区

标题: 给大家出道题。 [打印本页]

作者: 甘斌斌    时间: 2013-6-16 07:47
标题: 给大家出道题。
7、 从学生,老师,校长类中抽象出人的类,学生和老师都有收作业的方法,但是校长不会收作业。


作者: 高腾    时间: 2013-6-16 08:10
  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,那么就不能有方法体,等待派生类去重写
作者: 张久朝    时间: 2013-6-30 09:47
楼上正解
作者: 王震    时间: 2013-7-5 12:21
定义一个人的抽象类,里面有老师,校长,学生共有的特性。定义一个接口接口里面定义一个收作业的方法。老师和学生继承人的类和实现收作业的方法的接口,校长只继承人的类就ok了啊。
作者: zhangcheng5468    时间: 2013-7-9 17:42
楼上正解{:soso_e116:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2