Java面向对象基础知识之抽象类和接口

作者:一指流砂~ 时间:2023-02-10 03:02:58 

抽象类(abstract):

抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。

(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法

(2) 抽象类不能被实例化

(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类

(4) 具体派生类必须覆盖基类的抽象方法

(5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们

接口(interface):

(1) 接口不能被实例化

(2) 接口只能包含方法声明

(3) 接口的成员包括方法、属性、索引器、事件

(4) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

抽象类和接口的区别:

(1)抽象类可以有构造方法,接口中不能有构造方法。

(2)抽象类中可以有普通成员变量,接口中没有普通成员变量

(3)抽象类中可以包含静态方法,接口中不能包含静态方法

(4) 一个类可以实现多个接口,但只能继承一个抽象类。

(5)接口可以被多重实现,抽象类只能被单一继承

(6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法

抽象类和接口的相同点:

(1) 都可以被继承

(2) 都不能被实例化

(3) 都可以包含方法声明

(4) 派生类必须实现未实现的方法

来源:https://www.cnblogs.com/xuwendong/p/10840353.html

标签:Java,面向对象,抽象类,接口
0
投稿

猜你喜欢

  • Spring Security配置保姆级教程

    2023-11-07 11:46:56
  • 通过实例解析java8中的parallelStream

    2022-04-17 12:59:37
  • Java nacos动态配置实现流程详解

    2021-06-04 19:18:30
  • Android实现带列表的地图POI周边搜索功能

    2022-09-17 02:48:35
  • JAVA面试题 从源码角度分析StringBuffer和StringBuilder的区别

    2023-07-24 07:29:07
  • android采用FFmpeg实现音视频合成与分离

    2022-03-05 09:18:16
  • Android 中HttpURLConnection与HttpClient使用的简单实例

    2022-01-08 23:43:33
  • Android仿微信菜单(Menu)(使用C#和Java分别实现)

    2023-02-13 18:22:11
  • Java对象传递与返回的细节问题详析

    2023-04-07 16:42:50
  • Android系统制作自定义签名的例子

    2023-02-02 05:10:04
  • Java实现图形化界面的日历

    2023-03-04 04:07:47
  • Java实现并查集示例详解

    2023-07-17 05:41:34
  • 详解Android的内存优化--LruCache

    2022-07-18 14:28:41
  • Android画板开发之基本画笔功能

    2023-01-09 07:26:21
  • Android编程之控件状态配置文件实例

    2023-07-26 02:38:54
  • Android自定义View实现左右滑动选择出生年份

    2023-05-15 22:58:49
  • JAVA中JSONObject对象和Map对象之间的相互转换

    2023-07-13 15:04:28
  • SpringBoot注册Servlet的三种方法详解

    2022-06-15 15:56:29
  • 详解maven中profiles使用实现

    2022-11-13 23:14:24
  • spring boot项目没有mainClass如何实现打包运行

    2021-10-24 11:29:20
  • asp之家 软件编程 m.aspxhome.com