Java之路---Day10(抽象)
2019-10-24-23:21:17
目录
1.抽象的方法
2.抽象类
3.抽象类和抽象方法的使用
4.抽象类的注意事项
5.案例代码
1.抽象的方法
What:如果父类当中的方法不确定如何进行{}方法体实现,那么这就是一个抽象方法。
抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束。
抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。
2.抽象类
抽象类除了包含抽象方法外,还可以包含具体的变量和具体的方法。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化
3.抽象类和抽象方法的使用
1.不能直接创建new抽象类对象。
2.必须用一个子类来继承抽象父类。
3.子类必须覆盖重写抽象父类当中所有的抽象方法。
覆盖重写(实现) :子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
4.创建子类对象进行使用
4.抽象类的注意事项
1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
5.抽象类不能被实例化,抽象方法必须在子类中被实现
5.案例代码
package demopra;
//定义一个抽象类
abstract class Employees {
//定义一个变量
private String name;
//空参构造方法
public Employees() {
}
//全参构造方法
public Employees(String name) {
this.name = name;
}
//定义一个抽象方法
public abstract void work(); // @Override
// public String toString() {
// return "Employees{" +
// "name='" + name + '\'' +
// '}';
// }
//Getter和Setter
public void setName(String name) {
this.name = name;
} public String getName() {
return name;
}
}
package demopra;
//定义一个抽象类的子类
public class Teacher extends Employees{
//必须实现的方法,重写父类中的方法
@Override
public void work() {
System.out.println("我叫"+this.getName()+",是你们这学期的班主任");
}
}
package demopra;
//定义一个抽象类的子类
public class Driver extends Employees{
//必须实现的方法,重写父类中的方法
@Override
public void work() {
System.out.println("我叫"+this.getName()+",是一名出租车司机");
}
}
package demopra;
public class AbstractTest {
public static void main(String[] args) {
//创建一个Teacher对象
Teacher teacher = new Teacher();
//为Teacher对象添加一个名字
teacher.setName("张三");
//执行重写的方法
teacher.work();
//创建一个Driver对象
Driver driver = new Driver();
//为Driver对象添加一个名字
driver.setName("李四");
//执行重写的方法
driver.work();
}
}
运行结果
我叫张三,是你们这学期的班主任
我叫李四,是一名出租车司机
Java之路---Day10(抽象)的更多相关文章
- Java之路——敬JAVA初学者(作者:MoMo)
作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊! 要离开学校了,还是想留 ...
- Java之路——名词解释(一)
一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...
- Java之路——环境配置与编译运行
本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...
- Java之路 ——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- 转行自学 Java 之路的纪念册
前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...
- 当Java代码遇上抽象、重载加重写,一切都不美好了
当Java代码遇上抽象.重载加重写.一切都不美好了 前几天调程序遇上个奇怪的bug.一直没找到问题,今天最终发现问题所在了,不说了先上代码(下面代码是演示样例代码,经測试,Java不存在这问题,安卓存 ...
- 是什么让我走上Java之路?
选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- Java之路——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
随机推荐
- [技术博客] SPRINGBOOT自定义注解
SPRINGBOOT自定义注解 在springboot中,有各种各样的注解,这些注解能够简化我们的配置,提高开发效率.一般来说,springboot提供的注解已经佷丰富了,但如果我们想针对某个特定情景 ...
- DICOM worklist工作原理
一.关于Worklist 在RIS与PACS的系统集成中.Wordlist的连接为其主要工作之一.Wordlist成像设备工作列表,它是DICOM协议中众多服务类别中的一个.它的功能是实现设备操作台与 ...
- Oracle 导出表结构
Oracle导出表结构 select A.Table_Name 表名 , -- A.column_name 字段名 A.column_name 字段名, A.data_type 数据类型, A.dat ...
- shell整数与小数比较,小数之间比较的方法【转】
在shell脚本中,无法对浮点数进行比较,如: max=0.1 min=0.01 if [ "$max" -gt "$min" ] then echo &quo ...
- MySQL:实现cumsum(累加)的功能
需求:为实现cumsum累计求和的功能. 一张视图. SELECT 日期, 净利润 FROM daily_pnl_view; 现在希望得到,每天累计的利润是多少. SET @csum := 0;SEL ...
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆 怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数 ...
- c# 通过win32 api 得到指定Console application Content
已知的问题: 1. 调试的时候会报IO 异常,非调试环境是正常的 2. Windows 应用程序才可以使用,可以用非windows应用程序包一层 using System; using System. ...
- OpenStack(三)——allinone云平台的使用方法
接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作. 特别感谢https://www.cnblogs.com/openstackteam/p/5519 ...
- [转载]schtasks命令使用实例介绍
Schtasks /Query /s "XXX" /V /FO /CSV > XXX.csv 原文出处:http://www.dzwebs.net/2969.html sch ...
- 理解 Node.js 的 GC 机制
<深入浅出Node.js>第五章<内存控制>阅读笔记 随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中.本文不讨论网页应用.命令行工具等短时间执行 ...