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");