java 接口

一、概述

1.接口的概念

官方解释:Java接口是一系列方法的声明,是一些方法特征的集合。一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方中被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口可以被理解成一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解成100%的抽象类,即接口中的方法必须全部是抽象方法。

2.接口的定义

①定义接口要用到关键字interface,格式如下 : 

                interface 接口名 {

                } 

public interface Animal {
    void run();
    void sleep();
}

 ②类和接口之间不再是继承关系,而是实现关系,用implements关键字表示。如下 : 

                class 类名 implements 接口名 {

                }

public class AnimalBase implements Animal{
    public void run(){
        System.out.println("跑");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

需要注意的是:与类的定义类似,接口的访问权限修饰符只能是public或者默认

二、接口的特点

1.接口成员变量的特点:

接口中没有成员变量,只有共有静态常量

默认情况下属性前都会有 public static final 这三个关键字修饰。如下 :

public static final 数据类型 常量名 = 常量值;

2、接口成员方法的特点:

方法的默认属性为public abstract

3.接口构造方法的特点:

接口存在的目的是为了规范类,因此接口也不可以被实例化。接口中不允许存在代码块,也没有需要初始化的成员,因此接口没有构造方法(构造器)在接口中定义构造器IDEA会直接报错。

4.接口创建对象的特点:

接口不能被实例化 :

        只能通过多态的方式实例化“子类”对象(这里的“子类”指的是接口的实现类

接口的子类(实现类) : 

        可以是抽象类,也可以是普通类
        对于抽象实现类,可以不用实现接口的所有方法,因为抽象类本身容许存在抽象方法,语法上是通过的。

public abstract class AnimalBase implements Animal{

    public void run(){
        System.out.println("跑");
    }

}

上述抽象类只实现了接口中的部分方法,但是IDEA并没有报错。 

        对于普通实现类,要求实现接口的所有抽象方法。

普通类若未实现接口中的全部方法,IDEA则会报错。 

解决方法为将类声明为abstract抽象类,或实现Animal接口中剩下的方法。

5.接口继承关系的特点;

类和接口之间的关系 : 

        类与接口是实现关系,支持“多实现”,即一个类可实现多个接口

接口与接口之间的关系 : 

        接口与接口是继承关系,java 支持接口的多继承,即一个接口可以同时继承多个接口,格式如下 : 

        接口 extends 接口1,接口2,接口3...

继承和实现的区别 : 

        继承体现的是“is a”的关系,父类中定义共性内容。

        实现体现的是“like a”的关系,父接口中定义扩展内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值