接口基础知识

1.接口:对规则的声明

java中接口体现的更多的是对行为的抽象

2.设计接口

接口格式:interface 接口名{ },里面只能用抽象方法。

实现类格式:class 类名 implements 接口名{ },里面可以重写所有方法,或(少用)者再将其变成抽象类。

//创建接口(制定规则)
interface Inter{
    public abstract void point();
    public abstract void walk();//接口内部使用抽象方法
}
//实现类(实现接口)implements
class InterImpl implements Inter{
    public void point(){
        System.out.println("point out");
    }
    public void walk(){
        System.out.println("walk around");
    }
    //重写所有的抽象方法
}
//创建测试类,调用方法逻辑
public class Test{
    public static void main(String[] args){
        InterImpl a = new InterImpl();//创建实现类对象
        a.point();
        a.walk();
    }
}

3.接口中的成员特点

(1)成员变量

只能定义常量,因为系统会默认加入三个关键字public,static,final(无顺序关系)

(2)成员方法

只能是抽象方法,系统会默认加入两个关键字 public,abstract

(3)构造方法

4.接口和类之间之间的关系

(1)类和类之间的关系:继承关系,只支持单继承,不支持多继承,但支持多层继承。

(2)类与接口之间的关系:实现关系,可以单实现,也可以多实现,甚至可以在继承一个类的同时,实现多个接口。

(3)接口与接口之间的关系:继承关系,可以单继承,也可以多继承

//接口的多实现
public class Test{
    public static void main(String[] args){
        
    }
}
//写出两个接口
interface X{
    void point();
}
interface Y{
    void point();
}
//实现两个接口
class XYImpl implements X,Y{
    public void point(){
        System.out.println("point out");
    }
}
//继承的同时实现多个接口
public class Test{
    public static void main(String[] args){
        
    }
}
//写一个父类
class Fu{
    public void point(){
        System.out.println("point out");
}
//接口
interface X{
    void point();
}
interface Y{
    void point();
}
//继承,实现
class Zi extends Fu implements X,Y{
    //通过继承,无需再重写方法
}

5.抽象类和接口的对比

成员变量成员方法构造方法应用场景
抽象类可以定义常量,变量具体方法,抽象方法对事物做描述(对事物抽象)
接口只能定义常量只能抽象方法没有制定规则,规范代码(对行为抽象)

6.接口新特性

jdk8

(一)许定义非抽象方法

1.为了解决接口升级的问题,jdk8允许定义非抽象方法,称默认方法,但要default修饰

2.格式:public default 返回值类型 方法名(参数与列表){ }

public default void show(){ }

3.注意:public可省略,default不可省略。

默认方法,实现类可以重写,但是需要去掉default关键字。

如果实现了多个接口,多个接口中存在相同的默认方法,方法类必须重写默认方法。

(二)许定义静态方法

1.注意:public可省,static不可省略

接口中的静态方法,只允许接口名调用,不允许实现类通过对象名调用

jdk9

1.接口中可以定义私有方法。private修饰,但是不能用default修饰了

private void show(){}
----------------------------
private static void show(){}//可能其他的也是static,而只有静态可以访问静态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值