接口只是一种标识,只要实现了这个接口的类都会有public void selectAll(); 方法
这只是多态的一个表现

解决方案 »

  1.   


    按照楼上的意思: 直接用: UsersDaoImpl usersDaoImpl = new UsersDaoImpl();//实例化 
              usersDaoImpl.selectAll();  //对象调用类成员方法  它的维护性和扩展性没有用:
              UsersDao usersDao;    
              usersDao = new UsersDaoImpl();  
              usersDao.selectAll();  
    这种方式好了??
              
      

  2.   

    软件设计有一个原则,面向接口编程,而不要面向具体类编程,依赖于接口而不要依赖于具体类。
    举个简单的例子,假若有一天你发现UsersDaoImpl不符合你的需求了,你需要重新编写一个UsersDao接口的实现类,那么以前依赖于UserDaoImpl的代码必须全部被替换掉,这可能是个比较繁琐的事情,但是若你是面向接口编程的,你只需把最初创建的对象换成你现在想用的类便完成了任务。