Java中抽象类和接口的区别?

抽象类

抽象类必须在类前加上abstract表示这是一个抽象类,抽象类的抽象方法不需要实现,他只是一种声明,所以也就无法创建抽象类的对象。一个类继承抽象类必须实现抽象类中的抽象方法,如果不实现这个抽象方法,那么这个类就必须是抽象的。

接口

接口是Java中的interface,接口中变量都会被隐式指定为public static final变量,方法会被指定为public abstract方法,接口中的方法是抽象方法,不能具体实现,接口的实现必须重写所有的抽象方法,一般情况下不在接口中定义变量。

抽象类和接口的区别:

1.在Java中抽象类表示的是一种继承关系,一个只能继承一个父类,但一个类可以实现多个接口

2.抽象类中有自己的成员变量,可以被修改,也有非抽象的成员方法,如静态方法;而在接口中,只有静态的不能被修改的成员变量(static final),必须赋初值,不可以被子类修改,不过在接口中一般不定义成员变量,接口中成员方法必须是抽象的(abstract);

3.,实现抽象类和接口必须实其中所有的方法,如果这个类没实现抽象类中的所有抽象方法,则这个类是一个抽象类,实现接口必须实现所有的抽象方法,接口也可以继承接口,此时就可以不实现父类中的抽象方法。

猜你喜欢

转载自blog.csdn.net/qq_39820860/article/details/84962208