Java 8 (1/6篇) - 接口增强(默认方法 静态方法)

本文探讨了Java 8引入的接口默认方法,如何提升接口的灵活性,并讲解了静态方法在接口中的应用。重点比较了接口与抽象类的区别,包括继承、变量类型、构造方法和静态方法的继承性。
public interface JavaTest {
    //抽象方法
    void abstractMethod();
    //默认实现的方法(实现类才能调用)
    default void defaultMethod1(){}
    default void defaultMethod2(){}
    //静态方法(接口名调用)
    static void staticMethod(){}
}

【default 关键字】

目的:

对于 Java8 之前的语法----“接口中只能定义抽象方法,实现类必须实现全部抽象方法”,一般是不能拓展接口的,如果拓展则所有实现类都要改动。Java8 因此对接口引入了 default 默认实现的方法,实现类不需要实现就能继承该方法,同时也可以复写该方法。

使用说明:

①不能重写基类 Object 中的 public 方法。

②类优先原则:如果父类和接口默认方法有相同名称及参数列表的方法,则使用父类中的。

③如果实现类继承的接口A和接口B有相同名称及参数列表的方法,需要手动重写来解决冲突。

④接口中可以有多个default方法,只能实现类调用,不能通过接口名调用。

【静态方法】

目的:

将相关的方法内聚在接口中,而不必创建新的对象。

使用说明:

使用方法和类中的静态方法一样,直接通过 接口名.静态方法名 调用。接口中的静态方法是不会被继承的,实现类无法通过自身调用,也不能重写。(注:本就不鼓励使用实例调用静态方法,在编码的时候,实例.的时候IDEA不会提示静态方法,需要自己全拼才会显示,而不是实例不能调用静态方法。)

【Java8 中接口与抽象类的区别】

①抽象类可随意继承类和接口,接口只能继承接口。

②抽象类的变量和普通类没有区别,接口变量都是public static void。

③抽象类有构造方法,接口没有。

④抽象类的静态方法能被子类继承,接口不能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值