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,面向对象,抽象类,接口
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Spring Security配置保姆级教程
2023-11-07 11:46:56
通过实例解析java8中的parallelStream
2022-04-17 12:59:37
Java nacos动态配置实现流程详解
2021-06-04 19:18:30
![](https://img.aspxhome.com/file/2023/5/83555_0s.png)
Android实现带列表的地图POI周边搜索功能
2022-09-17 02:48:35
![](https://img.aspxhome.com/file/2023/3/139033_0s.gif)
JAVA面试题 从源码角度分析StringBuffer和StringBuilder的区别
2023-07-24 07:29:07
![](https://img.aspxhome.com/file/2023/3/95463_0s.png)
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
![](https://img.aspxhome.com/file/2023/3/111673_0s.gif)
Java对象传递与返回的细节问题详析
2023-04-07 16:42:50
![](https://img.aspxhome.com/file/2023/3/121933_0s.png)
Android系统制作自定义签名的例子
2023-02-02 05:10:04
![](https://img.aspxhome.com/file/2023/5/94985_0s.jpg)
Java实现图形化界面的日历
2023-03-04 04:07:47
![](https://img.aspxhome.com/file/2023/7/88077_0s.jpg)
Java实现并查集示例详解
2023-07-17 05:41:34
![](https://img.aspxhome.com/file/2023/1/116181_0s.png)
详解Android的内存优化--LruCache
2022-07-18 14:28:41
![](https://img.aspxhome.com/file/2023/9/126779_0s.gif)
Android画板开发之基本画笔功能
2023-01-09 07:26:21
![](https://img.aspxhome.com/file/2023/7/101867_0s.gif)
Android编程之控件状态配置文件实例
2023-07-26 02:38:54
Android自定义View实现左右滑动选择出生年份
2023-05-15 22:58:49
![](https://img.aspxhome.com/file/2023/5/138865_0s.gif)
JAVA中JSONObject对象和Map对象之间的相互转换
2023-07-13 15:04:28
SpringBoot注册Servlet的三种方法详解
2022-06-15 15:56:29
![](https://img.aspxhome.com/file/2023/1/78921_0s.png)
详解maven中profiles使用实现
2022-11-13 23:14:24
![](https://img.aspxhome.com/file/2023/2/64512_0s.jpg)
spring boot项目没有mainClass如何实现打包运行
2021-10-24 11:29:20