码迷,mamicode.com
首页 > 编程语言 > 详细

Java多态理解

时间:2015-12-02 00:48:26      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

//人的实体
public class PeopleEntity{
  private peopleName;  
  
private peopleDo(){       System.out.printly("人都会睡觉");     }
}
//学生实体 public class StudentEntity extends PeopleEntity(){     public void peopleDo(){       system.out.pringly("学生都要去上课");     }  
}
//教师实体 public class TeacherEntity extends PeopleEntity(){     public void peopleDo(){       System.out.pringly("教师要教学生知识");     }
}
//测试类 public class peopleTest(){     //调用人的运行 public void runPeople(PeopleEntity people){       people.peopleDo();   }   @Test   public void peopleRunTest(){       PeopleEntity teacher = new TeacherEntity();       runPeople(teacher);       PeopleEntity student = new StudentEntity();       runPeople(student); } }

上面创建了一个People实体作为父类,Teacher实体和Student实体都继承于People,但是在其类中又重写了父类的peopleDo方法。

在测试类中,我们又写了一个方法来调用父类中的peopleDo,在测试方法中,根据我们实例化出来的不同子类,调用该方法,发现得出的是我们子类中重写的方法。这种现象就是面向对象三大特性之一的多态(其他两个是继承和封装),我们对这种行为称为:父类的声明,子类的引用。

作用:

子类重写父类的方法,当外部通过父类调用方法的时,根据实例化的子类不同,方法的执行结果不同,父类无需关系子类的具体实现,当子类过时或其他因素不再需要的时候,移除子类,不会对父类和父类的其他子类造成影响。

具体使用:

在框架中使用的比较多(Spring mvc + mybatis),呃,是我一直在使用框架开发的缘故?

我们项目中的做法是做了一个基础类,这个类中放了一些常用的基础的保存,查询,更新,删除方法,所有的类继承或间接继承改类,在mybatis的Dao.xml中重写这些方法的sql语句。

 

关于重载和重写还傻傻分不清的同学,请看这位前辈的博客,重写和重载规则写的比较清晰:

http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html

关于多态想了解更多的,可以查看下这位前辈的的博客:
http://blog.csdn.net/superhill/article/details/7526627

  

 

Java多态理解

标签:

原文地址:http://www.cnblogs.com/PennKwok/p/5009026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!