接口和抽象类的区别
来源:懂视网
责编:小OO
时间:2024-12-01 21:34:34
接口和抽象类的区别
语法层面不同:抽象类可以提供成员方法的实现细节,而接口中只能存在publicabstract方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。
导读语法层面不同:抽象类可以提供成员方法的实现细节,而接口中只能存在publicabstract方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。

语法层面不同,设计层面不同等。
语法层面不同:抽象类可以提供成员方法的实现细节,而接口中只能存在publicabstract方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。
设计层面不同:抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。继承是一个是不是的关系,而接口实现则是有没有的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如鸟是否能飞(或者是否具备飞行这个特点),能飞行则可以实现这个接口,不能飞行就不实现这个接口。
接口和抽象类的区别
语法层面不同:抽象类可以提供成员方法的实现细节,而接口中只能存在publicabstract方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。