如何理解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,具有动物特性和攀爬行为:运行一下,看一下调用顺序和结果 。果然,先调用了抽象父类的构造方法,然后是子类的构造方法 。
推荐阅读
- 各种秤的图片和名称,秤的种类
- 机械硬盘和固态硬盘的区别和特点,固态和机械硬盘的区别
- miix2,联想 MIIX2 80英寸平板电脑到底咋样和ipad比哪个好
- 魅族mx3和小米3到底哪个好 魅族mx3和小米3
- 宁夏黄河银行招聘,宁夏黄河银行和石嘴山银行银川分行哪个工作好点听说石嘴山银行实
- ipadair和mini4哪个销量高,mini哪个好
- 骁龙660和630哪个续航好,6 64和骁龙660
- 华为k3手机怎么样,最近想换手机
- 如何写童话故事,怎样写童话故事
- 如何组织课堂讨论,组织和引导课堂讨论的策略