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,你直接丢下一堆钞票一句不用找就抱回家了,马上进入主题:
main(){
Person you = new Person();
//获得实际的wawa
Chongqiwawa wawa = new JapanWawa();
you.setWawa(wawa);
you.makeLove();
}
看见了吗,只需改动一行代码,你就实现了娃娃的切换,得到不同的makeLove感受,其他代码都不用改。
这就是接口!
我的认识是这样的,就是可以解耦,比如类A,B同时是想了接口c那么你在创建A和B的对象的时候可以这样写,c a = new A(); c b = new B();
这样你在增加A或者B的功能的时候就可以在C接口里添加方法,就可以使A,B添加新功能,这样就不必改动太多的代码,这是我的理解,希望能够帮到你。
个人学习Java时的一点总结,希望对楼主有用:
接口:
1,是用关键字interface定义的。
2,接口中包含的成员,最常见的全局常量,抽象方法。
注意:接口中的成员都有固定的修饰符。
成员变量:public static final
成员方法:public abstract
interface Inter
{
public static final int x = 3;
public abstract void show();
}
3,接口中有抽象方法,说明接口不可以实例化。
接口的子类必须实现了接口所有的抽象方法后,该子类才可以实例化。
否则,该子类还是一个抽象类。
4,类与类之间存在着继承关系,类于接口中间存在的是实现关系。
继承用extends 实现用implements