Java基础(接口)

一、接口(interface)

简而言之:接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。

1. 接口的定义

[ 修饰符] interface 接口名 extends 父接口1,父接口2

**接口只能继承接口,不能继承类**

举个例子,有如下几个接口,Color 表示动物毛色(emmm简陋点),Behaviour 表示动物行为。假设现在这有这两个接口。

public interface Color {
    void paintColor();

    void fade();
}

public interface Behaviour {
    void eat();

    void ask();

    void run();
}

如果你有Cat, Dog是不是应该implments这两个接口。 当然这时候就会有童鞋说,你不会写个Animal接口? 那其实就是一个面向对象编程的基础问题了,你是希望东西拆的越细越好还是越笼统越好?因为如果只写个Animal的接口类,那么就会显得实现这个接口的类,耦合度太高了。如果某些动物只有行为,没有颜色怎么办?
这样猫和狗可以自由选择所需要调用的接口

public interface AnimalImpl extends Behaviour, Color {
}

2、接口的作用

为什么要使用接口?接口的作用是什么?为什么不直接在实例类中进行方法实现,而是需要首先进行接口的定义?是不是多此一举了?

  1. 接口中可以定义常量,不能定义变量,如果你在接口中定义属性,那么通过反编译可以看见他会自动用public static final 修饰,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。
  2. 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。
  3. 接口不能实例化,接口中不能有构造。
  4. 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
  5. 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值