java 关于接口的问题~!

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:43:23
1.在什么时候要用到接口呢?好像没有什么用,没有接口一样可以实现.
2.public interface DriverHolder{
public void driverCar();
public void driverBus();
}
public class Driver extends Human implements DriverHolder{
public void driverCar(){
// ......
}
public void driverBus(){
// ......
}
}

如上,(Human类,未写出)DriverHolder是一个接口,Drever是一个已经实现DriverHolder接口中方法driverCar()的类,像下面这样有什么用呢?
DriverHolder driverholder = new Driver();
driverholder.driverCar();
"java可以实现多个接口,这样它就可以有很多个接口的类型",Driver有了DriverHolder类型,但这又有什么用,这个类型只是形式上的,可有可无,
还不如直接把这个方法定义到 Driver 类中去,然后 Driver driver = new Driver(); 一样可以调用它的 driverCar(); 和 driverBus() 方法,这样做岂不是方便得多?
烦扰了好几天了,搞不明白~望高手指点迷津/*多谢~!*/

给你举个简单的例子来说明接口的作用
比如我有一个类A,提供给你和其他人来使用。我的A类作用就是执行你的类中的run方法。但是我并不知道你拥有run方法的类名,所以我不能在我的A类中创建你的实例。只有你传递给我一个实例我才能执行你的类中的run方法。当然我可以接受一个object但是这样会带来隐患,因为object不能保证都会有run方法。所以这时接口就起到了作用,我做一个B接口并在其中定义run方法。只要你实现了B接口,这时我就可以确定我的A中接受的参数一定可用。如:
interface B{ void run();}
class A{ void excute(B b){b.run();} }

接口的作用很大,他提供一个标准供实现类去遵守,只是你这个例子不太合适
比如Driver(驾驶员)和Doctor(医生)都是接口,Human(人类)是个超类,那么我让你分别实例化100个驾驶员,100个医生,还有100个既是驾驶员又是医生的(重点在这),那你只需要让他们分别实现接口就行了,这是两个接口,假如更多呢,比如他还可以会做饭,会洗衣服,会多少东西就实现多少接口,是不是比较灵活,你直接定义类要定义多少个?
接口的另一个作用就像是一个沟通的工具,比如两个人或两个组织开发一个产品,其中一方需要另一个人提供支持,他只要把他需要的功能定义成接口,然后由另一方来实现就好了,这是一个非常普遍的应用!

汗啊,
慢慢领会,学的时间长了就明白了~!