Java 接口

Interface 接口

前言

刚开始学Java时很不能理解接口的作用,因为接口不像继承,直接减少码量,每实现一个接口都要实现其方法,这不是增加了码量吗?

那为何还需要接口的存在呢?

What

大家都知道,Java不支持多继承,那么如何实现多态呢,这时候就用到了接口,通过实现多个接口来实现多态。

首先,我开了个公司

虽然我公司很小,但是里面员工也不少呢 (o^^o)

创建类
//这是一只程序猿
class Programmer{
  public void doCode(){
    System.out.println("I'm programming!");
  }
}
//这是一只设计狮
class Designer{
  public void doPaint(){
    System.out.println("I'm painting!");
  }
}

每个员工的职责不同,我要让他们各自去工作

public static void main(String[] args){  
  Programmer programmer=new Programmer();
  programmer.doCode();
  Designer designer=new Designer();
  designer.doPaint();
}

这样看是不是看不出什么,觉得写的挺好的。

但是我很累呢!每个人都要我督促,我要知道每个员工做什么工作,我不累死了,毕竟我员工那么多。

创建接口并实现
interface Worker{
  void doWork();
}
class Programmer implements Worker{

  @Override
  public void doWork(){
    doCode();
  }

  public void doCode(){
    System.out.println("I'm programming!");
  }

}

class Designer implements Worker{

  @Override
  public void doWork(){
    doPaint();
  }

  public void doPaint(){
    System.out.println("I'm painting!");
  }

}

嗯,这样看起来确实比上面那段没实现接口的代码长,说了半天还是没解释接口的作用嘛 ( ̄^ ̄)ゞ

不急,我们先来建一个工具,用这个工具让员工们各自去工作。

class Tool{
  public static void goToWork(Worker worker){
    worker.doWork();
  }
}

此时发现我并不知道员工们各自的工作,但依然可以让他们去完成自己的工作。

public class Main {  
  public static void main(String[] args){  
    Tool.goToWork(new Designer());  
    Tool.goToWork(new Programmer());
  }  
}  

如果再加一个员工,只需要实现 Worker 接口,我就可以让他去工作啦~
具体工作内容什么的,就让 Manager 去分配吧,毕竟我有钱( ´ ▽ ` )ノ

总结

虽然我没有写如何实现多态,但新手对接口的疑问并不在于如何实现多态,接口在使用过程中大部分并不是用来实现多态的,更重要的是用来实现解耦,多态只是附加效果。

解耦即 ——— 将接口从具体实现中解耦使得接口可以应用于多种不同的具体实现,因此代码也就更具可复用性。

各模块只需和接口发生耦合,并不需要知道具体类的具体实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值