Java(十三) -- 接口

目录

接口

什么是接口?

如何使用接口


接口

  • 什么是接口?

        接口是由抽象类衍生出来的一个概念,并由此产生了一种编程方式:面向接口编程。

        面向接口编程就是将程序中的业务模块进行分离,以接口的形式去对接不同的业务模块。

        面向接口编程的优点:当用户需求变更时,只需要切换不同的实现类,而不需要修改串联模块的接口,减少对系统的影响。

                1、能够最大限度实现解耦合,降低程序的耦合性。

                2、使程序易于扩展。

                3、有利于程序的后期维护。

  • 如何使用接口

        接口在 Java 中时独立存在的一种结构,和类相似,我们需要创建一个接口文件,Java 中用 class 关键字来标识类,用 interface 来标识接口,基本语法:

public interface 接口名{
    public 返回值 方法名(参数列表)
}

        接口其实就是一个抽象类,极度抽象的抽象类。

        抽象类:一个类中一旦存在没有具体实现的抽象方法时,那么该类就必须定义为抽象类,同时抽象类允许存在非抽象方法。

        但是接口完全不同,接口中不能存在非抽象方法,接口中必须全部是抽象方法

        因为接口中必须全部都是抽象方法,所以修饰抽象方法的关键字 abstract 可以省略。

        接口中允许定义成员变量,但是有如下要求:

                1、不能定义 private 和 protected 修饰的成员变量,只能定义 public 和默认访问权限修饰符修饰的成员变量。

                2、接口中的成员变量在定义时就必须完成初始化。

                3、接口中的成员变量都是静态常量,既可以直接通过接口访问,同时值不能被修改。

public interface MyInterface {
    public int ID = 0;
    String NAME = "张三";
    public void test();
}

        使用接口时,不能直接实例化接口对象,必须实例化其实现类对象,实现类本身就是一个普通的 Java 类,创建实现类的代码如下所示。

public class MyInterfaceImpl implements MyInterface {
​
    @Override
    public void test() {
        // TODO Auto-generated method stub
        
    }
}

        通过 implements 关键字来指定实现类具体要实现的接口,在实现类的内部需要对接口的所有抽象方法进行实现,同时要求访问权限修饰符、返回值类型、方法名和参数列表必须完全一致。

        接口和继承,Java 只支持单继承,但是接口可以多实现(一个实现类可以同时实现多个接口)

public interface MyInterface {
    public int ID = 0;
    String NAME = "张三";
    public void fly();
}
​public interface MyInterface2 {
    public void run();
}
public class MyInterfaceImpl implements MyInterface,MyInterface2 {
​
    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("实现了跑步的方法");
    }
​
    @Override
    public void fly() {
        // TODO Auto-generated method stub
        System.out.println("实现了飞行的方法");
    }
​
}
import java.util.ArrayList;
import java.util.List;
​
public class Test {
    public static void main(String[] args) {
        MyInterfaceImpl myInterfaceImpl = new MyInterfaceImpl();
        myInterfaceImpl.fly();
        myInterfaceImpl.run();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug 消灭师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值