新东方之java多态之老师也是人

时间:2022-07-24 04:49:54

【老乔】前两天给晚班学生将多态,想起时老师讲的一个笑话。说他们上大学的时候,有一个比他们大三届的学长留校当老师了,结果头一年就和高两届的学生中三个女生谈了恋爱,再一年又与高一届的两个女生谈,到他们这届又开始追求时老师的一个好朋友。时老师劝她同学说:“这样的人你怎么还答应他呢?”她同学说:“我也跟他说,咱们这样师生恋不好吧?他激动地说:老师也是人哪!就只好答应了。”于是“老师也是人”这句话成为一时之传。
    “老师也是人”这句话正好说出了对象的一种非常重要的特性,即一个具体的对象可以有多种身份。当他在一种场合下,以一种身份出现的时候,可以干某些事情;在另外一个场合,以另外一种身份出现的时候,就可以干另外一件事情。人是同一个人,但是换上不同的身份,就可以干不同的事情了。举例如下:
//普通人
class 人
{
  //男大当婚,都要谈恋爱
 public void 谈恋爱(人 mm){
  System.out.println("花前月下");
 }
};
//老师也是人啊!!!
class 老师 extends 人
{
  //首要职责是传道授业了
 public void 讲课(){
  System.out.println("为人师表");
 }
  //当然也要谈恋爱,并且谈法和普通人不同
 public void 谈恋爱(人 mm){
  System.out.println("道貌岸然");
 }
}
//看看到底怎么回事
class Test
{
 public static void main(String[] args)
 {
   //有人找来一个美女
  人 美女 = new 人();
  
   //介绍给武宇
  人 武宇 = new 老师(); //多态的声明
   /*武宇就开始谈恋爱。注意,刚开始美女还不知道武宇的职业的,但是已经注意到他谈恋爱与众不同了*/
  武宇.谈恋爱(美女); //输出:道貌岸然,而不是:花前月下//虚方法调用
  
   //介绍人告诉美女,武宇是个老师
  老师 武老师 = (老师)武宇; //强制造型成他的职业面目
   //这就是我们每天都遇见的武老师了
  武老师.讲课(); //输出:为人师表
 }
};
本人后注:武宇,武大师不是别人,正是本人现在的老师,新东方一博的金牌讲师
文章出处: http://blog.tom.com/blog/read.php?bloggerid=795966&blogid=45684