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(抽象)的更多相关文章

  1. Java之路——敬JAVA初学者(作者:MoMo)

    作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊!    要离开学校了,还是想留 ...

  2. Java之路——名词解释(一)

    一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...

  3. Java之路——环境配置与编译运行

    本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...

  4. Java之路 ——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

  5. 转行自学 Java 之路的纪念册

    前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...

  6. 当Java代码遇上抽象、重载加重写,一切都不美好了

    当Java代码遇上抽象.重载加重写.一切都不美好了 前几天调程序遇上个奇怪的bug.一直没找到问题,今天最终发现问题所在了,不说了先上代码(下面代码是演示样例代码,经測试,Java不存在这问题,安卓存 ...

  7. 是什么让我走上Java之路?

    选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...

  8. 我的Java之路

    前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...

  9. Java之路——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

随机推荐

  1. 【Gamma阶段】第三次Scrum Meeting

    冰多多团队-Gamma阶段第三次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 修改可移动button以及button手感反馈优化 编辑器风格切换(夜间模式) 牛雅哲 添加优化算法 ...

  2. Spring Boot通过Configuration配置多数据源

    本文结合SpringBoot + MyBatis + MySql进行多数据源配置,DataSource信息采用自定义dataSource.properties进行配置. 1.文件结构如下: 2.1 p ...

  3. 假如 Redis Cluster 模式用在 T-io 上

    前言   前几天在学习Redis Cluster 模式的时候,突然想到如果把它的集群模式应用在T-io上也是挺有意思的一件事情. Redis 集群简介    Redis Cluster 中有 N 台实 ...

  4. vs code搭建python和tensorflow环境

    anaconda 安装tensorflow-gpu环境见https://www.cnblogs.com/wintersoft/p/11620267.html vscode中设置python虚拟环境Ct ...

  5. SEAndroid

    SEAndroid安全机制所要保护的对象是系统中的资源,这些资源分布在各个子系统中,例如我们经常接触的文件就是分布文件子系统中的. 实际上,系统中需要保护的资源非常多,除了前面说的文件之外,还有进程. ...

  6. 深度解析 ASP.NET MVC 5

    ASP.NET MVC基础 IoC容器 ASP.NET MVC可扩展性 ASP.NET MVC Filters & Cache ASP.NET MVC AJAX ASP.NET MVC Cli ...

  7. ChIP-seq | ATAC-seq | 数据分析流程

    思来想去,还是觉得ENCODE的流程靠谱,所以又花了快一周来调试,终于排除万难,跑成功了.[2019年12月08日] 以下是ATAC生成的结果目录: call-align call-call_peak ...

  8. 自动创建Kibana索引

    参考 https://www.cnblogs.com/dance-walter/p/10471950.html 参考 https://www.elastic.co/guide/en/kibana/cu ...

  9. log配置文件log4j.propeties(配置保存日志文件的相对路径)

    log配置文件log4j.propeties(配置保存日志文件的相对路径) log4j.propeties文件: #日志的4种级别ERROR(错误).WARN(警告潜在的错误).INFO(粗粒度信息) ...

  10. 【NWJS】解析node-webkit(NWJS)的打包和发布

    目录结构: contents structure [-] 下载和安装node-webkit 建立一个简单的WEB应用 生成EXE可执行文件 修改icon 封包 Enigma Virtual Box I ...