Java面向对象抽象类案例分析

简介: 1 /** 2 雇员示例: 3 需求:公司中程序员有姓名,工号,薪水,工作内容 4 项目经理除了有姓名,工号,薪水还有奖金,工作内容 5 对给出需求进行数据建模 6 7 8 分析: 9 在这个问题领域中,先找出涉及的对象 10 通过名词提炼法 11 程序...
 1 /**
 2 雇员示例:
 3 需求:公司中程序员有姓名,工号,薪水,工作内容
 4 项目经理除了有姓名,工号,薪水还有奖金,工作内容
 5 对给出需求进行数据建模
 6 
 7 
 8 分析:
 9 在这个问题领域中,先找出涉及的对象
10 通过名词提炼法
11 程序员:
12     属性:姓名,工号,薪水
13     行为:工作
14 经理:
15     属性:姓名,工号,薪水,奖金
16     行为:工作
17     
18 
19 程序员和经理不存在直接继承关系,
20 但是程序员和经理却具有共性内容,
21 可以进行抽取,因为他们都是公司的雇员
22 
23 可以将程序员和经理进行抽取,建立体系
24 */
25 
26 //公司体系的建立
27 
28 //雇员
29 class Employee
30 {
31     private String name;
32     private String id;
33     private double pay;
34     Employee(String name,String id,double pay)
35     {
36         this.name=name;
37         this.id=id;
38         this.pay=pay;
39     }
40     public abstract void work()
41 }
42 
43 //描述程序员
44 class Programmer extends Employee
45 {
46     Programmer(String name,String id,double pay)
47     {
48         super(name,id,pay);
49     }
50     public void work()
51     {
52         System.out.println("code...");
53     }
54 }
55 
56 //描述经理
57 class Manger extends Employee
58 {
59     private int bonus;
60     Manger(String name,String id,double pay,int bonus)
61     {
62         super(name,id,pay);
63         this.bonus=bonus;
64     }
65     public void work()
66     {
67         System.out.println("manage");
68     }
69 }

 

目录
相关文章
|
11月前
|
安全 Java 编译器
new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析
逃逸分析是一种静态程序分析技术,用于判断对象的可见性与生命周期。它帮助即时编译器优化内存使用、降低同步开销。根据对象是否逃逸出方法或线程,分析结果分为未逃逸、方法逃逸和线程逃逸三种。基于分析结果,编译器可进行同步锁消除、标量替换和栈上分配等优化,从而提升程序性能。尽管逃逸分析计算复杂度较高,但其在热点代码中的应用为Java虚拟机带来了显著的优化效果。
348 4
|
9月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
391 2
|
9月前
|
Java Go 开发工具
【Java】(9)抽象类、接口、内部的运用与作用分析,枚举类型的使用
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。抽象类可以包含成员变量、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类(接 口、枚举)5种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类abstract static不能同时修饰一个方法。
363 1
|
10月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
263 1
|
10月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
10月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
388 0
|
11月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
293 3
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
343 57
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
374 2