个性化阅读
专注于IT技术分析

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
赞(0)
未经允许不得转载:srcmini » Java抽象类和接口的区别

评论 抢沙发

评论前必须登录!