四、面向对象(五)Java接口

今天的博客主题

      基础篇 --》面向对象 --》Java接口


什么是接口?

接口是一个抽象类型,是抽象方法的集合。

接口来体现方法的特征,无方法实现,因此这些方法可以在不同的地方被不同的类实现。

Java接口,Java语言中存在的结构,有特定的语法和结构。

通过Interface关键字来声明一个接口。

 

接口的特点

接口中每一个方法都是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。

接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。

接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

 

接口和类的区别

接口没有构造方法,所以不能被实例化。而类有构造方法。

接口不能被类继承,只能被类来实现。类可以继承,但不能被实现

接口支持多继承,通过实现接口完善不能多继承机制。类可以被继承,只能单继承。

接口中每一个方法都是抽象方法。而类里不能出现抽象方法。

接口里不能包含成员变量,除了static和final变量。类里都可以。

类定义了一个实体,包括实体的属性,实体的行为。接口定义了一个实体可能发生的动作,只有一个声明,没有具体的行为。

 

接口和类相似点

接口里可以出现多个方法

接口文件后缀也是.java,字节码存在.class文件里

接口相应的字节码文件必须在与包名称相匹配的目录结构中

 

声明接口

接口通过关键字Interface来声明

public interface HelloWorld {
    //定义常量
    public static final String HELLO = "你好";
    //定义一个抽象方法
    public void getHello();
}

这样就定义了一个接口类了。

在接口中定义常量关键字 public static final可以省略不写

这个接口是用来被其他类来实现的,当类实现接口的时候,这个类要实现接口所有的方法,否则这个类必须定义为抽象类。

通过关键字implements来实现接口,如果不实现这个接口里所有接口,是编译不过去的。

public class Hello implements HelloWorld{
    @Override
    public void getHello() {
        System.out.println(HelloWorld.HELLO);
    }
}

public class TestDemo{
    public static void main(String[] args) {
        HelloWorld hw = new Hello();
        hw.getHello();
    }
}
输出结果:
    你好

 

类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。

类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。

如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

一个类可以同时实现多个接口。

一个类只能继承一个类,但是能实现多个接口。

一个接口能继承另一个接口,这和类之间的继承比较相似

在实现接口的时候注意事项

一个类可以同时实现多个接口。

一个类只能继承一个类,但是能实现多个接口。

一个接口能继承另一个接口,这和类之间的继承比较相似

 

接口继承

接口之间的继承和类继承一样,唯一区别就是类不支持多继承,而接口可以。

接口继承也是使用extends关键字

 

public interface A extends B{}

 

 

如果需要多继承,那么只需要在extends关键字后面直接增加想要多继承的类,多个用逗号隔开

public interface A extends B,C,D{}

 

 

标记接口

比较常用的继承接口是没有包含任何方法的接口,这类接口被称为标记接口。

标记接口是没有任何方法和属性的接口。仅表明了他的类属于一个特地帮的类型,供其他代码来测试允许做一些事情。

标记接口的作用就是给某个对象标识一下,使对象拥有某个或某些特权。

比如Serializable 接口,就是一个标识接口,只是用来告诉JVM,实现这个接口的类需要序列化处理,而不需要实现这个接口的方法。

在一些源码当中,这样的接口挺多。以后见到就知道了,不至于很陌生

 

接口的作用

接口说了这么多,那么接口的作用是什么呢?

制定标准。

制定好一个标准之后,所有的参与者只要遵循这个规则,都可以参与。

生活中最常见的就是电脑的USB接口,统一一个规范,所有想要接入我接口的必须按照这个来。

那么介入过来的东西,每个都有自己的一套规范。


温故而知新

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值