关于接口(interface)

引出接口

接口就是一组规范,所有实现类都需要遵守这个规范,就像生活中的法律一样,每个人都要遵守,法外狂徒另说hhh;或者就像充电器的接口Type-C,规定好这个接口,电脑根据这个规则做出Type-C的充电口,才能充电,能和相同接口的鼠标,键盘,打印机等相连实现需求。

接口的作用(为什么要定义接口)

接口就是比 抽象类 还 抽象 的 抽象类,(接口中只有抽象方法不能定义属性之类的)可以更加规范的对子类进行约束,全面,专业地实现了:规范和具体实现地分离。

接口是两个模块之间通信的标准,通信的规范。 

接口和实现类不是父子关系,是实现规则的关系。

定义接口 and 使用接口

定义:

[访问修饰符] interface 接口名 [extends 父接口1, 父接口2...]{、

        常量定义;

        方法定义;}

说明:

访问修饰符:

public or 默认 (default) 别的不行

接口名:

和类名采用相同命名机制

extends:

可以多继承

常量:

接口中的属性只能是常量,总是 public static final 修饰。不写默认就是这个

方法:

接口中的方法只能是抽象方法:public abstract。不写默认就是这个

要点

1.子类通过implements来实现接口中的规范

2.接口不能创建实例,但是可以用于声明引用变量类型

3.一个类实现了接口,必须实现接口中的所有方法,并且这些方法都是用public修饰

4.JDK1.8 (不含8)之前接口只能包含静态变量,抽象方法,不能有普通属性,构造方法,普通方法。

测试

接口代码

// fly 接口
public interface fly {
    /* public static final */ int b = 8; // 前缀加或不加都一样 默认就是这个
    /* public abstract */void fun(); // 前缀加或不加都一样 默认就是这个
}
// fly2 接口
interface fly2{
    void fun2();
}

测试接口

// 对接口的测试
public class Test {

}
class car implements fly,fly2{

    @Override
    public void fun() {
        System.out.println("需要实现的方法1");
    }

    @Override
    public void fun2() {
        System.out.println("需要实现的方法2");
    }
}

JDK 8 以后还能写默认方法,静态方法等方法,能直接调用

interface  fly3{
    int a = 100;
    default void fun3(){
        System.out.println("JDK8以后接口中可以写默认方法 用default关键字去定义");
    }
    static void fun4(){
        System.out.println("静态方法也可以创建但是由this接口调用,子类也不能调用," +
                "子类可以写一个一样的静态方法,性质类似同名同姓的人,没什么关系,子类的静态方法只能通过子类调用");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值