接口基础语法

接口的基础语法

1 接口概述

接口也是一种引用数据类型。编译之后也是一个class字节码文件。

接口我们可以看作是抽象类的一种特殊情况,在接口只能定义抽象的方法和常量。

  1. 在Java中接口采用interface声明
  2. 接口的默认方法都是public abstract的,不能修改,可以省略
  3. 接口中的变量默认都是public static final类型的,不能更改(可以省略),所以必须显示的初始化
  4. 接口不能被实例化,接口中没有构造函数的概念
  5. 接口之间可以继承,但接口之间不能实现
  6. 接口中的方法只能通过类来实现,通过implements关键字
  7. 如果一个类实现了接口,那么接口中所有的方法必须实现
  8. 一个类可以实现多个接口

接口定义语法:

[修饰符列表] interface 接口名{}

2 接口中的方法默认都是public abstract的,不能更改,可以省略

interface MyTest1 {
    //抽象方法
    public abstract int test1();

    //public abstract可以省略
    String test2();
}

接口中都是抽象方法,自然也是不能带有方法体。

3 接口中的变量默认都是public static final类型的,不能更改(可以省略),所以必须显示的初始化

interface MyTest2 {
    //接口中的常量必须是public static final 修饰的,不能更改
    public static final double PI = 3.1415926;
    //可以省略不写
    int X = 100;
}

4 接口不能被实例化,接口中没有构造函数的概念

public class InfaceTest05 {
    public static void main(String[] args) {
        //这是错误的,接口是抽象类的一种特例,只能定义方法和bian'l,没有实现
        //所以不能去实例化
        //Student stu = new Student();
    }
}

interface Student {
    //接口是抽象类的一种,抽象类中的方法没有方法体,所以接口中也没有
    //所以也就没有构造函数
    public void addStudent(int id, String name);
}

5 接口之间可以继承,支持多继承

public class InterfaceTest01 {
}
//定义接口A
interface A {
}
//定义接口B,并继承接口A
interface B extends A {
}
//定义接口C,并继承接口A和接口B
interface C extends A, B {
}

6 接口中的方法只能通过类来实现,通过implements关键字

类和类之间叫做继承,类和接口之间叫做实现。

继承使用extends关键字完成。

实现用implements关键字完成。

//特殊的抽象类,完全抽象的,叫做接口
interface InterfaceTest02 {
}
//编写一个非抽象类
class Test implements InterfaceTest02{
}

7 如果一个类实现了接口,那么接口中所有的方法必须实现

interface InterfaceTest02 {
    //定义两个抽象方法
    int sum(int a, int b);

    String sub(String c, String d);
}

//编写一个非抽象类
class Test implements InterfaceTest02 {
    //必须重写/覆盖/实现 接口中的方法
    public int sum(int a, int b) {
        return a + b;
    }

    public String sub(String c, String d) {
        return c + d;
    }
}

8 一个类可以实现多个接口

//接口A1
interface A1 {
    void m1();
}
//接口A2
interface A2 {
    void m2();
}
//TestA实现接口A1,接口A2
class TestA implements A1, A2 {
    //必须要覆盖两个接口中的方法
    @Override
    public void m1() {
    }

    @Override
    public void m2() {
    }
}

Java中类和类只支持单继承,而接口弥补了单继承带来的缺陷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值