首页 > 手机 > 配件 > java中接口和抽象类的区别,接口与抽象类的区别

java中接口和抽象类的区别,接口与抽象类的区别

来源:整理 时间:2022-04-07 19:43:48 编辑:华为40 手机版

如何理解java的抽象类和接口的区别

如何理解java的抽象类和接口的区别

首先,来理解一下抽象类和接口的概念。众所周知,Java是面向对象的程序语言,而面向对象中的所有的对象,大都是通过类来描述的。相反,并不是所有的类都适合来描述对象,比如抽象类。抽象类中没有足够的信息来描述一个具体的对象,所以它是抽象的。而接口,是高度抽象类型,是抽象方法的集合,接口并不是类,而是对类的一组需求的描述。

这些类要遵循接口描述的统一格式来定义。如果类遵从了某个特定接口,就代表它履行了这项服务。然后,来理解一下抽象类和接口的相同点。其一,都不能被实例化。其二,接口只有在其实现类实现了其中所有的方法、抽象类的子类也都实现了所有的抽象方法后,才可以被实例化。再然后,来理解一下抽象类和接口的不同点。抽象类:abstract关键字修饰抽象方法只有声明,无方法体只能继承不能实例化包含抽象方法的类一定是抽象类,但抽象类不一定包含抽象方法抽象类中的抽象方法的修饰符只能是public或者protected,默认为public一个类只能继承一个抽象类子类继承抽象类时,必须实现全部的抽象方法,否则也必须为抽象类可以包含成员变量、成员方法、构造方法;但是构造方法不能用于实例化,只是供子类调用如抽象类Animal,有成员属性name、构造方法:接口:interface关键字修饰方法只能有声明,不能有方法体,默认为public abstract。

JDK1.8之后,可以有default类型的方法,可以有方法体只能实现不能实例化所有方法只能是public abstract。JDK1.8之后,可以有default类型的方法,可以有方法体一个类可以实现多个接口可以包含变量,但隐式默认为public static finalJDK1.8中的新特性,新增了默认方法(default):允许接口含有非抽象的方法,但必须用default修饰;default方法可以子类调用,子类也可不比对其实现;如子类实现了多个接口,且这些接口均包含有默认方法,则子类必须重写该默认方法。

新增了静态方法:允许接口使用static关键字修饰方法并提供实现,即为静态方法;接口的静态方法只能通过接口进行调用,调用方式为:接口名:方法名。如接口Climb,通用行为climb:举个栗子,Cat类继承Animal、且实现Climb,具有动物特性和攀爬行为:运行一下,看一下调用顺序和结果。果然,先调用了抽象父类的构造方法,然后是子类的构造方法。

文章TAG:抽象类接口java

最近更新