Java抽象类和接口的区别

抽象类和接口都是用于实现抽象,我们可以声明抽象方法。抽象类和接口都不能被实例化。
【Java抽象类和接口的区别】但是有许多抽象类和接口之间的差异,下面给出。

抽象类接口
1) 抽象类可以有抽象方法和非抽象方法。接口只能有抽象方法。由于Java 8,它也可以有默认和静态方法。
2)抽象类不支持多重继承。接口支持多重继承。
3) 抽象类可以有final、non-final、static和non-static变量。接口只有静态和最终的变量。
4) 抽象类可以提供接口的实现。接口不能提供抽象类的实现。
5)使用abstract关键字声明抽象类。interface关键字用于声明接口。
6)一个抽象类可以扩展另一个Java类并实现多个Java接口。一个接口可以扩展另一个Java接口。
7) 可以使用关键字“extends”扩展抽象类。 可以使用关键字“implements”来实现接口。
8)Java抽象类可以有像私人类成员,保护等。默认情况下,Java接口的成员是公共的。
9)例子:
public abstract class Shape{
public abstract void draw();
}
例子:公共接口可拉的{空白画(); }
简单,抽象类实现部分抽象接口(0到100?0而达到完全抽象(100?
抽象类和接口的Java示例
让我们看看一个简单的例子,我们使用接口和抽象类。
//Creating interface that has 4 methods 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

    推荐阅读