接口
1、因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但是可以实现多个接口,同时接口本身也可以继承多个接口。
2、接口里面的成员变量默认是public static final类型的。必须被显示的初始化。
3、接口里面的方法默认都是public abstract类型的。隐式声明。
4、接口没有构造方法,不能被实例化。
5、接口不能实现另外的一个接口,但是可以继承多个接口。
6、类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类就要被定义为抽象类。
抽象类
1、如果将一个类声明为abstract,此类不能生成对象,只能被继承使用。
2、抽象方法必须存在于抽象类中。
3、抽象类中可以有一般的变量和一般的方法。
4、子类继承抽象类必须实现其中的抽象方法,除非子类为抽象类。
接口与抽象类的区别:
1、接口只能包含抽象方法,抽象类可以包括普通方法。
2、接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。
3、接口不包含构造方法,抽象类里可以包含构造方法。
抽象类不能被实例化,但不代表它不可以有构造函数,抽象类可以有构造函数,以备抽象类扩充。
1、接口是核心,其定义了要做的事情,包含了许多的方法,但是没有定义这些方法应该如何做。
2、如果许多类实现了某个接口,那么每个都要用代码实现那些方法。
3、如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。
所以,抽象类是为了简化接口的实现,这不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完全可以自己实现所有的方法,不会出现紧耦合的问题。
应用场合就很简单了
首先优先定义接口,如果有多个接口实现公有的部分,则使用抽象类。
对于使用面向对象类编程语言的程序员来说,“”接口“”这个名词一定不会陌生,但是不知道各位有没有这样的困惑:接口到底有什么用途?
它和抽象类之间有什么样的区别?能不能用抽象类代替接口呢?作为程序员,一定会经常听到“”面向接口编程“”这个短语,那么它是什么意思?有什么样的思想内涵?和面向对象编程之间有什么样的关系?下面将一一解答这些疑惑。
1、面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更加先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。
2、接口的本质
接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或者其他接口所实现(或者也可以说被继承)。它在形式上可能是如下的样子:
interface InterfaceName
{
void Method1();
void Method2(int para1);
void Method3(String para2,String para3);
}
来源:CSDN
作者:wh柒八九
链接:https://blog.csdn.net/qq_31960623/article/details/104087501