接口

概述

一个接口只有方法的特征没有方法实现,因此这些方法可以在不同的地方被不同的实现,而这些实现可以具有不同的行为(功能)。接口可以理解成一种特殊的类,里面全部都是由全局变量和公共的抽象方法所组成。他是解决Java无法受用多继承的一种手段,但更多的作用是制定标准的。

接口与类相似点:

一个接口可以有多个方法。
接口文件保存在 .java 结尾的文件中,文件名使用接口名。
接口的字节码文件保存在 .class 结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。
接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。

接口特性

接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

抽象类和接口的区别

  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
  3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

下面展示一些 内联代码片

package com.hg.day12.demo02;

public interface MyInterfaceDefault {
    public abstract void usb2();

    //将USB2.0升级到3.0
    public default void usb3() {
        System.out.println("这是USB3.0新增加的功能");
    }
}

package com.hg.day12.demo02;

public class MyInterfaceDefaultA implements MyInterfaceDefault{
    @Override
    public void usb2(){
        System.out.println("我是笔记本电脑的USB2.0");
    }
}

package com.hg.day12.demo02;

public class MyInterfaceDefaultA implements MyInterfaceDefault{
    @Override
    public void usb2(){
        System.out.println("我是笔记本电脑的USB2.0");
    }
}


```handlebars
package com.hg.day12.demo02;

public class Demo02Interface {

    public static void main(String[] args) {
        MyInterfaceDefaultA impla=new MyInterfaceDefaultA();

        impla.usb2();
        impla.usb3();

        System.out.println("=================");

        MyInterfaceDefaultB implb=new MyInterfaceDefaultB();

        implb.usb2();
        implb.usb3();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值