欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 学习—抽象类和接口的区别

程序员文章站 2022-05-22 11:14:17
...

抽象类和接口都用于实现抽象,可以声明抽象方法。 抽象类和接口都不能被实例化。但是在下面给出的抽象类和接口之间有许多区别。
Java 学习—抽象类和接口的区别
简单地说,抽象类实现了部分抽象(0到100%),而接口实现了完全抽象(100%)。
示例:

interface A {
    void a();// bydefault, public and abstract

    void b();

    void c();

    void d();
}

// Creating abstract class that provides the implementation of one method of A
// interface
abstract class B implements A {
    public void c() {
        System.out.println("I am C");
    }
}

// Creating subclass of abstract class, now we need to provide the
// implementation of rest of the methods
class M extends B {
    public void a() {
        System.out.println("I am a");
    }

    public void b() {
        System.out.println("I am b");
    }

    public void d() {
        System.out.println("I am d");
    }
}

// Creating a test class that calls the methods of A interface
class Test5 {
    public static void main(String args[]) {
        A a = new M();
        a.a();
        a.b();
        a.c();
        a.d();
    }
}

结果如下:

I am a
I am b
I am c
I am d