interface Chongqiwawa{
public void makeLove(String name);
}
class Person{
Chongqiwawa wawa;
public void setWawa(Chongqiwawa wawa){
this.wawa = wawa;
}
private String name;
public void makeLove(){
//调用wawa的makeLove方法
wawa.makeLove(name);
}
现在,你想和wawa那个,就可以这样用了:
main(){
Person you = new Person();
you.makeLove();
}
class USAWawa implements Chongqiwawa{
public void makeLove(String name){
System.output.println(name + " come on! a,a, a...");
}
}
好吧,你已经流口水了,一口价成交,然后带回家,迫不及待实践一下,代码体现为:
main(){
Person you = new Person();
Chongqiwawa wawa = new USAWawa();
you.setWawa(wawa);
you.makeLove();
}
这时候你已经可以和娃娃水乳交融了。不久,你发觉厌倦了美国娃娃,想试下日本娃娃,再次来到成人超市,日本娃娃makeLove功能实现如下:
class JapanWawa implements Chongqiwawa{
public void makeLove(String name){
System.output.println(name + " yemede! a,a, a...ganbade...");
}
}
OK,你直接丢下一堆钞票一句不用找就抱回家了,马上进入主题:
首先给出以下代码:
public interface Irun { //假设定义一个跑步的接口Irun
public void run();
}
class Run100 implements Irun{ //这个类是实现Irun的类,也就是具体类,这个是跑100米的
public void run() {
System.out.println("run 100 meters");
}
}
class Run200 implements Irun{ //这个类是实现Irun的类,也就是具体类,这个是跑200米的
public void run() {
System.out.println("run 200 meters");
}
}
class Person{ //这个类叫做业务类 这个类只能针对接口编程 不针对实际的类编程
private Irun irun=null;
public void setRun(Irun irun){
this.irun=irun;
}
public void getRun(){
irun.run();
}
}
下面我再给你一个测试类,你就明白了:
public class Test{ //这个类主要用来测试 首先 如果某个人想跑步,假设有不同的方法,有100米 200米 ....
public static void main(String[] args){ //这时,如果想跑一百米,就只需要传递一个实现了具体跑步的类的对象就行
Person p=new Person(); //接口类不需要改,业务类也不需要改,只要你实现了跑步这个方法的类,都可以直接拿来就用了
p.setRun(new Run100()); //假设 如果想跑100 就传run100 如果想跑200就传run200 非常易于扩展
p.getRun(); //而如没有用接口的话,那么你调用业务类,就还得去改动业务类才行
}
}
以上代码全是自己现写的,希望能对楼主有点儿帮助吧,毕竟现在阶段还完全用不到接口,
因为我们通过的那些基础测试,入学考试,还有面试问题根本不会问的这么深,所以了解到此应该够了作者: 王小闲7 时间: 2012-9-21 00:38
我的认识是这样的,就是可以解耦,比如类A,B同时是想了接口c那么你在创建A和B的对象的时候可以这样写,c a = new A(); c b = new B();
这样你在增加A或者B的功能的时候就可以在C接口里添加方法,就可以使A,B添加新功能,这样就不必改动太多的代码,这是我的理解,希望能够帮到你。作者: 王宝龙 时间: 2012-9-21 00:52
为什么Java要引入接口的概念呢?因为Java不支持多继承。例如:
interface Inter
{
public static final int x = 3;
public abstract void show();
}
3,接口中有抽象方法,说明接口不可以实例化。
接口的子类必须实现了接口所有的抽象方法后,该子类才可以实例化。
否则,该子类还是一个抽象类。
4,类与类之间存在着继承关系,类于接口中间存在的是实现关系。
继承用extends 实现用implements