抽象类与接口的区别

Posted baishouzu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类与接口的区别相关的知识,希望对你有一定的参考价值。

抽象类与接口的区别

抽象类

抽象方法:只有声明,没有具体的实现。即abstruact关键字修饰。

1 abstract void function();

抽象类与普通类的区别
1.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。
2.抽象类不能用来创建对象。(如模板模式中通过 Game = new Football()的方式创建具体的对象。)
3.如果一个类继承了一个抽象类,那么子类必须实现抽象类中声明的抽象方法。(如果不实现的话,那么子类也必须定义为抽象类。)

接口

接口,英文名称Interface(Java中接口的关键字)。软件工程中,接口泛指供别人调用的方法或者函数。Java中,它是对行为(常见为声明的方法)的抽象。
接口中的变量和方法,变量智能是静态常量,且默认是public;方法也只能是public abstract方法,其中的方法都不能有具体的实现,都是抽象方法。因此可以理解为接口是比抽象类更抽象的东西。注:在接口中一般是不定义变量的。

1 public interface InterfaceName{}

抽象类与接口的区别

从以下几个方面来理解抽象类和接口的区别
1.成员:抽象类变量可以是各种类型的;接口的属性成员变量只能是静态常量值(public static final修饰)。
2.方法:抽象类可以具体的方法;接口只能必须有抽象方法。
3.构造:(由方法可得)抽象类可以有构造器;接口不能有构造器。
4.继承:一个类只能继承一个抽象类,但可以实现多个方法。
5.代码块:抽象类可以根据需要有代码块(当有具体方法的时候,如静态代码块);接口没有任何代码块,只有方法。

以上是关于抽象类与接口的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android面试每日一题:抽象类与接口的区别?

抽象类与接口的区别

抽象类与接口的区别

C#中抽象类与接口的区别

Java抽象类与接口的区别

抽象类与接口的区别