关于类抽象类和接口的继承关系

颜子歌 颜子歌     2022-10-11     655

关键词:

关于类、抽象类和接口的继承关系

一、类和抽象类

当实体类Impl继承一个抽象类Abstract,该实体类Impl可以不用实现抽象类Abstract中的所有方法,但是必须实现抽象类中的所有抽象方法

 

二、类和接口

当实体类Impl直接实现接口Interface,那么该实体类Impl必须是想接口Interface里面的所有接口方法

 

三、抽象类和接口

当抽象类Abstract实现接口Interface,抽象类可以实现接口中的部分接口方法,也可以完全不实现任何接口方法。

理解:因为抽象类的功能类似接口,都是给某种行为或者流程提供统一的抽象的规范,两者的目的都不是去具体实现具体操作,具体的操作需要不同实体类去实现。

 

四、上面都是只设计两者之间关系的情况,当涉及三者之间关系的时候,情况稍微复杂,但是当你理解实体类、抽象类和接口的存在的目的和意义也就很容易理解

实体类Impl extends 抽象类Abstract implements 接口Interface(注:下面所有情况中抽象类Abstract都不用显式实现接口Interface:即不需要在抽象类Abstract中写Abstract implements Interface,只要方法是实现即可<即:方法的访问权限,修饰词,返回参数,参数列表一样>)

1、 如果抽象类Abstract实现了Interface中的部分方法,那么实体类Impl需要实现抽象类Abstract没有实现Interface中的接口。

例:Interface有三个方法

public void getUp();

public void washFace();

public void eatBreakfast();

Abstract只实现了Interface中的一个方法getUp(),那么Impl就需要实现剩下的两个方法washFace()和eatBreakfast()

2、 如果抽象类Abstract没有实现Interface中的任何方法(当然这种情况在工作中很少遇到,这样Abstract就失去了存在的意义),那么Impl就必须实现接口中的所有方法。

3、 如果抽象类Abstract实现Interface中的所有方法,那么实体类Impl就可以选择性的实现接口Interface中需要的方法

 

五、实体类继承实体类然后实现接口

实体类AImpl extends 实体类BImpl implements 接口Interface

情况和上面类似(这只是实体类,抽象类和接口关系的一种变化形式)

说明:BImpl不用显式实现接口Interface,只要方法是实现接口Interface的方法即可

 

总结:抽象类和接口的功能是给相似行为或者功能提供统一规范,不用具体实现某种操作。实体类无论是继承还是实现接口,或者是多继承,只要上层没有被实现的接口或者抽象方法都必须被实现。

继承抽象类和接口

继承  1、提高了代码的复用性。2、让类与类之间产生了关系。有了这个关系才有了多态的特性。  查阅父类功能,创建子类对象使用功能  继承的特点:重载    对于类的方法(包括从父类中... 查看详情

关于抽象类和接口

  抽象类:含有abstract修饰符的类即为抽象类,它是不能创建实例对象的,含有abstract的方法必须定义在抽象类中,但抽象类中的方法不一定必须是抽象的,抽象类中的抽象方法再其子类中必须被实现,所以不能有抽象的... 查看详情

抽象类和接口的异同点

相同点: 都是不断向上抽取而来的。不同点: 1,抽象类需要被继承,而且只能单继承。  接口需要被实现,而且可以多实现。 2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。 &... 查看详情

抽象类和接口的区别

抽象类:抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式由派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何... 查看详情

java抽象类和接口

***********************体会接口的好处*******************************一.可维护、可扩展面向接口编程接口:父类型面向父类编程 二.解耦高内聚、低耦合耦合:类和类之间的关系...只要类和类之间有四种关系就是耦合(关联、继承、实现、... 查看详情

java中抽象类和接口的区别?(代码片段)

什么是抽象类?抽象类是对具体概念的抽象抽象类本质是为了继承只能被public或默认修饰行为层面抽象出来抽象方法抽象类的注意事项抽象类不可以被直接实例化抽象类中可以存在构造方法抽象类可以存在普通方法抽象方法的注... 查看详情

第七周课程总结&实验报告(代码片段)

...的实际应用接口在实际中更多的作用是用来制定标准的。抽象类和接口的的关系No.区别点抽象类接口1定义包含一个抽象方法的类抽象方法和全局常量的集合2组成构造方法、抽象方法、普通方法、常量、变量常量、抽象方法3使用... 查看详情

接口和抽象类的区别

抽象类和接口是面向对象编程中的基本概念,类(含抽象类)、接口、数组是同一个级别的概念,都属于引用数据类型。相同点:? 抽象类和接口均包含抽象方法,类必须实现所有的抽象方法,否则是抽象类。? 抽象类和... 查看详情

抽象类和接口区别

简述抽象类和接口区别 ①   Abstract修饰符:抽象类不能省略;接口省略②   子类和实现类:抽象类的子类继承抽象类,单继承;接口的实现类实现接口,多实现;③   继承:抽象类单继承;... 查看详情

抽象类和接口的区别

...明  4、派生类必须实现未实现的方法不同的:  1、抽象基类可以定义字段、属性、方法实现;接口只能定义属性、索引器、事件和方法声明,不能包含字段。  2、抽象类是一个不完整的类,需要进一步细化;接口是一个... 查看详情

抽象类和接口的区别

接口和抽象类的区别:1.接口的所有方法都是抽象的,抽象类里面的方法可以是抽象的也可以不是抽象的;2.接口和抽象类都不能实例化,接口需要类来实现后实例化实现类,抽象类需要类来继承然后实例化子类;3.抽象类只能单... 查看详情

课程总结(代码片段)

...念,接口可以理解为一种特殊的类,由全局变量和公共的抽象方法所组成。实现接口接口要使用也必须通过子类,子类通过implements关键字实现接口继承抽象类实现接口一个子类可以同时继承抽象类和实现接口格式class子类extends... 查看详情

抽象类和接口学习小结

区别:1.本质区别是抽象类描述这个类是什么,而接口则是描述这个类可以做什么功能。2.接口的方法都是publice3.抽象类被继承时,子类要实现父类所有抽象方法,要overwrite关键字4.抽象类可以包含字段和普通方法5.继承时,基类... 查看详情

抽象类和接口的关系

1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4.抽象类中的... 查看详情

抽象类和接口的区别

抽象类和接口的区别一、抽象类与接口的相同之处  1、抽象类和接口都不能被实例化,都用于被其他类实现或继承  2、他们都可以包含抽象方法,并且在其他类继承或实现的时候都必须实现这些抽象方法 二、抽象类与... 查看详情

第七节继承抽象类和接口

继承的概述代码示例:classPerson{//父类Stringname;intage;charsex;Stringidcard;}classStudentsextendsPerson{//子类继承父类的属性publicvoidstudy(){System.out.println("好好学习");}}classWorkerextendsPerson{//子类继承父类的属性/*我们通过继承的方式,可 查看详情

抽象类和接口的区别

1.抽象类中可以有普通成员变量,接口中没有普通成员变量。2.抽象类和接口中都可以包含静态成员变量,抽象类中静态成员变量的访问类型是任意的,接口中必须为(publicstaticfinal)(默认)。3.抽象类可以包含非抽象的普通方法,接... 查看详情

抽象类和接口的区别(代码片段)

a.接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法。b.一个类可以实现多个接口,而只能继承一个抽象父类。c.接口与实现它的类不构成继承体系,而抽象类是属于一个类的继承体系。d.接口中的方法默认... 查看详情