接口和抽象类

原创
2021/03/09 16:53
阅读数 14

接口和抽象类


方法类型


接口(interface)

  1. 方法默认是抽象的

  2. 方法可以没有方法体

  3. 在jdk1.8中接口中的静态方法和默认方法可以有具体的方法体

    //没有方法体
    void test();

    //默认方法
    default void test1() {
        //方法实现
    }
    //静态方法
    static void test2() {
        //方法实现
    }

抽象类

  1. 可以有抽象方法也可以有非抽象方法
    static void test(){

    }

    public abstract void test1();

实例化

接口和抽象类都不可以被实例化


变量

接口

变量默认都是final修饰的

接口中只有静态变量和最终变量

抽象类

变量可以是静态变量,非静态变量,非最终变量,也可以是最终变量


实现方式

接口

可以使用关键字implements实现接口,接口无法提供抽象类的实现

抽象类

可以使用关键字extends继承抽象类,抽象类可以提供接口的实现


扩展方式

接口

接口只能扩展另一个接口

抽象类

抽象类可以扩展多个抽象类,且实现多个接口


访问性

接口

接口中的成员都是public公共的

抽象类

抽象类中的成员可以具有类成员.具体有protected,private,public


接口中大多数都是常用的一些功能,方便后续的维护
抽象类中大多数时候是一个公共类的角色,是将来继承它的类的一个模板
功能需要累积时用抽象类,不需要累积时用接口。

参考自:

java中接口和抽象类的区别

Difference between Abstract Class and Interface in Java

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部