/*抽象类1.用abstract关键字来修饰一个类时,这个类就叫抽象类访问修饰符 abstract 类名{}2.用abstract关键字来修饰一个方法时,这个方法就是抽象方法访问修饰符 abstract 返回类型 方法名(参数列表);  //注意:抽象方法没有方法体,即不能实现细节1.抽象类不能被实例化2.抽象类不一定要包含abstract方法,即抽象类可以没有abstract方法3.一旦类包含了abstract方法,则这个类必须声明是抽象类abstract4.abstract只能修饰类和方法,不能修饰属性和其他的东西5.抽象类可以有任意的成员,如:非抽象方法、构造器、属性等6.如果一个类继承了抽象类,则必须实现抽象类的所有抽象方法,或者子类也声明为abstract抽象类7.抽象方法不能使用private、final和static修饰,因为这些关键字都是和重写相违背的*//*练1:下列代码是否能通过编译abstract final class A{};   //final不能被继承abstract public static void test(); //static与方法重写无关abstract private void test();   //私有的方法不能被重写*//*练2:编写一个Employee类,声明为抽象类,包含name、id、salary三个属性,提供必要的构造器和抽象方法CommonEmployee类继承了Employee类Manager类继承了Employee类,还有特有属性:bonus奖金设计CommonEmployee类和Manager类,要求类中提供必要的方法进行属性访问,实现work()*/
public class Abstract {public static void main(String[] args) {Manager manager = new Manager("jack", 001, 20000);manager.setBonus(9999);manager.work();CommonEmployee commonEmployee = new CommonEmployee("tom", 999, 10000);commonEmployee.work();}
}
abstract class Employee{private String name;private int id;private double salary;public Employee(String name, int id, double salary) {this.name = name;this.id = id;this.salary = salary;}//将work做成抽象方法public abstract void work();public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}
}class Manager extends Employee{private double bonus;public Manager(String name, int id, double salary) {super(name, id, salary);}public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}@Overridepublic void work() {System.out.println("经理" + getName() + "正在工作....");}
}class CommonEmployee extends Employee{public CommonEmployee(String name, int id, double salary) {super(name, id, salary);}@Overridepublic void work() {System.out.println("普通员工" + getName() + "正在工作....");}
}
/*抽象类实践——模板设计模式在模板模式中,一个抽象类公开定义了执行它的方法的方式(模板),子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行例:需求1.有多个类,完成不同的任务2.要求能够得到各自完成任务的时间*/
public class Template {public static void main(String[] args) {AA aa = new AA();aa.calculateTime();BB bb = new BB();bb.calculateTime();}}abstract class People{//抽象类-模板设计模式public abstract void job();//抽象方法public void calculateTime(){//开始时间long start = System.currentTimeMillis();//System类currentTimeMillis()返回当前时间,以毫秒为单位job();//动态绑定机制,从子类开始查找//结束时间long end = System.currentTimeMillis();System.out.println("任务执行时间为" + (end - start) + "毫秒");}
}class AA extends People{@Overridepublic void job() {long num = 0;for (int i = 1; i <= 3000000; i++) {num *= i;}}
}class BB extends People{@Overridepublic void job(){long num = 0;for (int i = 1; i <= 1000000; i++) {num += i;}}
}

0047 抽象类、模板设计模式相关推荐

  1. 【复习回顾、继承、抽象类模板设计模式】

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 th ...

  2. Java——抽象类+模板设计模式

    目录 1.抽象类介绍 2.抽象类细节 3.抽象类细节02 4.抽象类实例(员工问题) test01.java Employee.java Manager.java CommonEmployee.jav ...

  3. 抽象类 模板设计模式

    抽象类 包含抽象方法的类 abstract 修饰 1.抽像类不可以被实例化 Person p = new Person("bit",10); 2.如果一个非抽象类继承了抽象类,必须 ...

  4. Java笔记018-抽象类、抽象类最佳实践-模板设计模式、接口、内部类

    目录 抽象类 先看一个问题 小结: 抽象类快速入门 抽象类的介绍 抽象类使用的注意事项和细节讨论 抽象类练习题 抽象类最佳实践-模板设计模式 基本介绍 模板设计模式能解决的问题 最佳实践 最佳实践 接 ...

  5. 01-复习回顾、继承、抽象类、模板设计模式

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习 类的创建------>必须掌握 对象的创建和使用------>必须掌握 匿名对象 继承 如何继承-继承的格式--- ...

  6. 【复习回顾、继承、抽象类、模板设计模式】

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 抽象 ...

  7. 10.7 抽象类最佳实践-模板设计模式

    10.7.1 基本介绍 10.7.2 模板设计模式能解决的问题 10.7.3 最佳实践 abstract public class Template { //抽象类-模板设计模式 public abs ...

  8. Java 抽象类最佳实践-模板设计模式

    目录 1.基本介绍 2.模板设计模式能解决的问题 3.最佳实践 1.基本介绍 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展.改造,但子类总体上会保留抽 ...

  9. day01-【复习回顾、继承、抽象类、模板设计模式】

    复习总结[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 抽象类 ...

最新文章

  1. 【LeetCode从零单排】No21.MergeTwoSortedLists
  2. 腾讯陈妍:万物互联时代,保险业应更注重服务创新来挖掘用户需求
  3. 取周一时间_周一到周五不好化妆?别着急,5款夏日通勤裸妆的教程来了!
  4. 分享我的Windows live writer 使用经验
  5. 金属拉链滑块行业调研报告 - 市场现状分析与发展前景预测
  6. Windows 进程管理
  7. The Dandy Lab使用RFID积分方案,提升客户保持率
  8. mc服务器常用指令_我的世界:游戏内高频使用指令,这个“神秘代码”你用过吗?...
  9. 【krpano】多分类缩略图及多分类地图案例
  10. Windows和Linux DNS Cache清理
  11. mac 修改pip镜像为国内镜像
  12. imx6ull ccm时钟体系
  13. links.php是病毒吗,发现了第一只php病毒PHP.Pirus
  14. 改进网易云音乐的“音乐社交”构想
  15. 联想笔记本驱动升级,指纹识别不了不成功解决方法
  16. Java获取国家节假日规定休息日期
  17. SpringBoot快速上手
  18. 谷歌PR风采依旧 推动网络推广产业链
  19. 搭建VLC流媒体服务
  20. Java判断某特殊字符串结尾的2种方法

热门文章

  1. 卫星导航模拟器GSS7000测试NTRIP RTK--以Ublox F9P 为例.rtklib原始观测量解算固定解FIX
  2. python小项目之淘宝秒杀
  3. Linux(ubuntu) 基础
  4. PID调节之比例(P)调节
  5. 剪辑歌曲,哪个音乐剪辑软件操作简单
  6. 计算机高新办公软件应用考试,全国计算机信息高新技术考试办公软件中级操作员考试题库...
  7. mess组网 中继_土豪用Mesh 我们就用无线中继解决问题
  8. Data Oriented Analysis Design
  9. 罗技 连点 脚本_首拆?罗技G PRO X机械键盘,拆解测评
  10. c语言p1口亮灯,单片机实验开发与微机原理接口技术综合实验装置,上海求育