在使用Dao设计模式时,通常会使用userDao user = new userDaoImpl
为什么会这样使用呢?个人理解如下:
1.如果单纯的写UserDao user=new UserDao(),这只是一个接口的对象,没有实际意义
2.如果写UserDaoImpl user=new UserDaoImpl(),则dao层的存在实际上是没什么意义的
3.接口的实例化,也就是新声明一个userdao,他可以调用userdaoimpl中的所有方法
4.UserDaoImpl,就是对Dao接口方法的实现,这是分层的思想,降低耦合
另外,关于多态,可以总结为:
1.使用父类类型的引用指向子类的对象;
2.该引用只能调用父类中定义的方法和变量;
3.如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
4.变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
多态的三个必要条件:
1.继承 2.重写 3.父类引用指向子类对象。
参考http://www.cnblogs.com/xjhere/p/5842461.html