抽象类和接口(Java程序设计)
愿得一心人,白头不相离。
愿你经历山河,归来仍是少年。
文章目录
1.抽象类
2.final修饰符
3.接口
4.接口编程案例
学习目标
前言
今天的日子:
在这个特殊的日子:
2020年是最浪漫的一年,谐音“爱你爱你”
5月20日是最浪漫的一天,寓意“我爱你”
20200520 寓意“爱你爱你我爱你”
- 你是我修复不了的bug。
- 我把你写进了while(1){你却自带break;}。
- 不负代码不负君,面向对象面向卿。
程序猿不会表白?
你错了,他们表白都是依靠固定程序
而我们是创造属于我们独一无二的表白程序
没错,我们面对世界是循规蹈矩,但,我们面对你可以让世界变得循规蹈矩。
520表白神器
我有属于独一无二的表白神器
顶部
抽象类
抽象方法
使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。
抽象类
如果一个类包含抽象方法,那么该类必须是抽象类。
代码举例:
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父 类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
代码举例:
此时的方法重写,是子类对父类抽象方法的完成实现,我们将这种方法重写的操作,也叫做实现方法。
注意事项
关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。
- 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
- 理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。
- 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
- 理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。
- 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。
- 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
- 理解:假设不重写所有抽象方法,则类中可能包含抽象方法。那么创建对象后,调用抽象的方法,没有意义。
final修饰符
修饰方法
格式如下:
重写被 final 修饰的方法,编译时就会报错。
**基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。**代码如下:
思考,如下两种写法,哪种可以通过编译?
写法1:
写法2:
根据 final 的定义,写法1报错!写法2,为什么通过编译呢?因为每次循环,都是一次新的变量c。这也是大家 需要注意的地方。
接口
接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并 不是类,而是另外一种引用数据类型。
抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用。
类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类 似继承,格式相仿,只是关键字不同,实现使用 implements 关键字。
非抽象子类实现接口:
定义接口:
定义实现类:
定义测试类:
默认方法的使用
可以继承,可以重写,二选一,但是只能通过实现类的对象来调用。
抽象方法
接口中,有多个抽象方法时,实现类必须重写所有抽象方法。如果抽象方法有重名的,只需要重写一次。代码如下:
定义多个接口:
定义实现类:
默认方法
接口中,有多个默认方法时,实现类都可继承使用。如果默认方法有重名的,必须重写一次。代码如下:
接口中,存在同名的静态方法并不会冲突,原因是只能通过各自接口名访问静态方法。
接口编程案例
2. 接口中最重要的就是抽象方法,格式:
[public] [abstract] 返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
3. 从Java 8开始,接口里允许定义默认方法,格式:
[public] default 返回值类型 方法名称(参数列表) { 方法体 }
注意:默认方法也可以被覆盖重写
学业目标
- 【微信公众号】星沅传
- 愿你和我一起成长-星沅
- 持续《继承和多态(Java程序设计)》的学习
- 会持续更新后面的学习
抽象类和接口(Java程序设计)相关推荐
- 使用抽象类还是接口(Java)
"要针对接口编程,不要针对实现编程."那么,在java的世界里,这里的接口指的是什么呢?无非是以下两种实现方式: 方式1)抽象类(只能有一个超类) 方式2)接口Interface( ...
- NO.16 沙场秋点兵:类vs抽象类vs接口 | Java敲黑板系列
开场白 老铁 :接口.抽象类.类--三位英雄执剑走天涯,行侠仗义,被誉为"Java帝国三剑客".三位英雄从来都不会争强好胜,而是相互协助,发挥各自优势,共同打造Java帝国的强安全 ...
- Java 的抽象特性:抽象类与接口深度解析
要点: 抽象类 接口 抽象类与接口的差别 一. 抽象 对于面向对象编程来说,抽象是它的四大特征之中的一个. 在Java中,能够通过两种形式来体现OOP的抽象:接口和抽象类. 接口和抽象类为我们提供了一 ...
- Java复习之抽象类和接口
Java复习之抽象类和接口 Java复习之抽象类和接口 什么是抽象类和接口 抽象类与接口的区别 什么情况下使用抽象类或接口 一个demo引起来的对于java方法区堆栈的研究 首先我们需要明白抽象类与接 ...
- 20155303 2016-2017-2 《Java程序设计》第四周学习总结
20155303 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 6.1 何谓继承 继承避免多个类间重复定义共同行为,使用关键字exten ...
- 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...
本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...
- Java第五次作业--面向对象高级特性(抽象类和接口)
一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握抽象类的设计 掌握接口的设计 理解简单工厂设计模式 理解抽象类和接口的区别 掌握包装类的应用 掌握对象的比较方法和比较器的使用 学习使用日期操 ...
- Java中类、抽象类、接口之间的区别和联系。
Java中类.抽象类.接口之间的区别和联系. 程序设计所面对的问题域--客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议).把客观世界中的事物映射到面 ...
- Java编程那些事儿69——抽象类和接口(二)
Java编程那些事儿69--抽象类和接口(二) 陈跃峰 出自:http://blog.csdn.net/mailbomb 8.9.2 接口 接口(Interface)是一种复合数据类型. 至此,Jav ...
最新文章
- 使用MASM03 - Win32汇编语言011
- 数字技术对就业的影响分析
- 系统自动化安装kickstart
- 项目:网站架构,集群
- 2022-01-23
- Oracle命令--alter 操作
- uva 10723——Cyborg Genes
- 【CodeForces - 1084D】The Fair Nut and the Best Path (树形dp)
- 华三交换机如何进入配置_学校机房项目交换机的如何配置,理解这篇,交换机配置不再难...
- 织梦后台如何生成站点地图sitemap.xml
- cisco ios命令
- 一道面试题:猫大叫了一声...
- 浏览器存储cookie
- ZXECS-IBX1000综合业务交换
- 实验十四 水下无线传感网协议仿真实验
- 通俗易懂的讲解 网关是什么
- Java获取本地ip地址
- 物联网架构成长之路(35)-利用Netty解析物联网自定义协议
- 【数据结构】栈-C语言版
- 驱动文件中只有cat/inf/dll文件,怎么安装
热门文章
- node版本管理工具gnvm
- 守护线程setDaemon的理解
- CAD隐藏图层(网页版)
- 学习PPT,这些制作设计技巧需先掌握
- APK Image Extractor(安卓APK图像提取) v2.0
- 理想评价鸿蒙系统,鸿蒙系统来了!前期如何发育?后期的潜力有多大?苹果真豁口了!...
- [渝粤教育] 中南大学 科学计算与MATLAB语言 参考 资料
- 现代电商会员管理新玩法——付费会员
- VirtualBox增强功能包
- 联想z5 android pie,联想z5成功吃上安卓pie