java接口作用_java中接口的作用 | 学步园

在java中接口体现的很重要,大家可能都听过面向接口编程,那么今天讲讲接口以及接口的使用,

首先讲下抽象类,抽象类比普通的类差别在那呢?抽象类中有抽象方法,这就是最大的差距,因为抽象方法只声明方法,但没有具体实现,抽象类不能实例化,因为类实例化就成了对象,那么对象就可以调用方法,而抽象方法只有声明,所以调用无意义,从反面也可以推断抽象类不能实例化,但是抽象类可以有构造函数,因为它要为子类进行初始化,

Person.java

public abstract class Person {

public Person() {

System.out.println("我是父类的构造方法");

}

public abstract void show();

}

Teacher.java 继承了Person

public class Teacher extends Person {

public Teacher() {

super();

System.out.println("我是子类的构造方法");

}

@Override

public void show() {

System.out.println("show--------------");

}

}

Test.java测试类

public class Test {

public static void main(String[] args) {

Teacher t = new Teacher();

t.show();

}

}

打印结果:

我是父类的构造方法

我是子类的构造方法

show--------------

从结果我么也看出来了,现在讲下接口,接口可以看做一个特殊的抽象类,特殊在那呢?,因为接口的方法都是完全的抽象的,变量都是

常量,

接口的作用:

常用来讲接口是定义实现类的外观,就相当于一份契约,根据外部应用需要的功能,约定了实现类应该要实现的功能,

使用接口的好处:

只要接口不变,内部实现的变化就不会影响到外部应用,从而使系统更加灵活,具有更好的扩展性和可维护性!

现在用工厂模式来讲下接口的好处:

Api.java

public interface Api {

void show();

}

ImplA.java

public class ImplA implements Api {

@Override

public void show() {

System.out.println("implA is show");

}

}

ImplB.jav

public class ImplB implements Api {

@Override

public void show() {

System.out.println("implB is show");

}

}

工厂类Factory.java

public class Factory {

public static Api create(int type){

Api api = null;

if(type==1){

api = new ImplA();

}else if(type==2){

api = new ImplB();

}else{

api = null;

}

return api;

}

}

Client.java

public class Client {

public static void main(String[] args) {

Api api = Factory.create(1);

api.show();

}

}

在此中我们可以看出接口起来隔离的作用,把Client看做是客户端,客户端要获取ImplA类的实例,我们是使用工厂的模式去获取该对象,Client并没有直接与ImplA类联系在一起,在中间用Api接口隔离了,因为Client类并没有和具体的实现类发生关系,在这里接口就起到了隔离的作用,从而降低了Client类与ImplA类之间的耦合度,

回调我们知道,在java中回调用的非常之多,比如android中的Button点击事件就是使用接口回调实现的,现在讲讲java中的回调是怎么实现的,先看看接口的定义

打个比方:

有一天小王遇到一个很难的问题,问题是“1 + 1 = ?”,就打电话问小李,小李一下子也不知道,就跟小王说,等我办完手上的事情,就去想想答案,小王也不会傻傻的拿着电话去等小李的答案吧,于是小王就对小李说,我还要去逛街,你知道了答案就打我电话告诉我,于是挂了电话,自己办自己的事情,过了一个小时,小李打了小王的电话,告诉他答案是2,这是网上讲回调经典的比方:

画一个简单的图,演示下回调的流程

61aff015d6e061ffa77e845647efbbd1.png

上面的图解释的是同步回调,



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值