日期:2014-05-20  浏览次数:20723 次

java 弄个interface貌似没有用
一个class implements 一个interface
然后再class里面定义那个 interface的方法。

还不如直接在类里面定义一个方法,岂不实现同样地功能,还省得在class 的后面画蛇添足地加一个 implements


对吧?

------解决方案--------------------
好好体会interface ,你如果有多个类都有相同的方法 ,而方法的实现都不一样 ,那么你定义一个interface就有用了 

public interface IEat{
public void eat() ;
}

public class Person implements IEat{

public void eat{
//do Person eat ;
}
}


public class Animal implements IEat{

public void eat{
//do Animal eat ;
}
}



public class Test{

private IEat eat ;

public Test(IEat eat){ //这里就不要具体到 是使用Person 还是 Animal了
this.eat = eat ;
}

}

我也不知道我举得例子对不对 ,反正我是这么理解的
------解决方案--------------------
典型的没做过项目的体会
------解决方案--------------------
举个例子,假设你要做个系统,同时需要支持db2,oracle,mysql数据库,里面会用到一些与特定数据库相关的语句,如取前3条记录,你要怎么做呢?

这时候就要用到接口或抽象类了,接口和抽象类本质上没有太大区别,目的都是为了多态

这时候抽象出一个数据库访问接口或抽象类,然后为db2,mysql,oracle各定义一个自己的实现类,但在系统中使用的是数据库访问接口,配上静态工厂或抽象工厂,这就与实际实现解耦了


探讨

引用:

典型的没做过项目的体会


请大师指点:

------解决方案--------------------
接口和抽象类为了实现多态
有时候接口可以代表一种标准

------解决方案--------------------
接口就是一种标准,规定实现者的方法
------解决方案--------------------
= = ..初学者吧。。没学过 多态?
------解决方案--------------------
恩,你可以去看看别人的项目,都是接口编程的,如果不用接口的话,以后需求要是变了,客户要求加些什么功能的话,代码会乱的很。不利于维护
------解决方案--------------------
在java中类是不能多继承的,接口就是来弥补这个的,接口可以多继承
------解决方案--------------------
有时候是格式,是一些约定俗成的东西,和技术没有多大关系~
------解决方案--------------------
慢慢体会吧,简单工厂啊
------解决方案--------------------
接口很重要的,重要到一定境界了,比继承用得多多了,做哪个项目里面没用到接口丫,接口可以用来分层,MVC项目都有service接口,dao接口,以前学的时候也没太大感觉,现在发现接口真是个好东西丫,还有些框架也要用到接口,比如说spring,总之等lz真正做项目了就知道离不开接口
------解决方案--------------------
接口很有用,如果没用Java就不会在语言级别支持他了。


------解决方案--------------------
java里面没有多继承,就出现了interface 她实现了多继承的目的。你把方法写在class里面,同一个方法可能有几种不同的实现,请问这时你怎么调用呢?好好看看书吧,
------解决方案--------------------
LZ原来是学C的吧,理解面向对象吧
------解决方案--------------------
Interface乃是面向对象的精髓啊~~多态少不了它的。
等你做了稍微大一点的项目之后就会明白它是个神奇了。
------解决方案--------------------
1
<bean id="studentService" class="com.school.mis.biz.service.StudentPojoService" />
2
<bean id="studentService" class="com.school.mis.biz.service.StudentXmlFacadeService" />

比如 public class StudentPojoService implements StudentService
public class StudentXmlFacadeService implements StudentService

比如方法升级,我只要将1的配置更改为2的配置,就可以实现功能替换
因为
StudentService statusService = (StudentService)context.getBean("studentService");
如果我用
StudentPojoService statusService = (StudentPojoService)context.getBean("studentService");