package org.pcl.shili.jicheng;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* 继承的基本演示
* @author yifan
* @version 1.1 2014-05-14
*
* 1.演示了一个类如何继承另一个类: 使用extends关键字
* 2.演示了super关键字的两个用法, 一个是调用构造器另一个调用父类方法
* 3.演示了子类中使用父类的私有成员的方式:使用父类共有的方法
* 4.对于成员是类类型,并且该类型具有修改其自身的方法时的使用方式见getHireDate方法
* 5.演示了多态和动态绑定
*/
public class ManagerTest {
public static void main(String[] args) {
Employee[] employees = new Employee[3];
employees[0] = new Manager("管理员", 8000, 2000, 12, 13, 10000); // 多态哦
employees[1] = new Employee("员工1", 6000, 2008, 8, 8);
employees[2] = new Employee("员工2", 3000, 2014, 5, 15);
// 循环输出所有的职员信息
for(Employee e : employees) {
String name = e.getName();
double salary = e.getSalary(); // 动态绑定
GregorianCalendar hireDate = e.getHireDate();
System.out.printf("员工姓名:%s, 员工工资:%.2f, 员工入职时间:%d年%d月%d日\n", name, salary, hireDate.get(Calendar.YEAR), hireDate.get(Calendar.MONTH)+1, hireDate.get(Calendar.DAY_OF_MONTH));
}
}
}
/**
* 普通职员类
* @author yifan
* @version 1.1 2014-05-14
*/
class Employee {
/**
* 构建一个新的职员
* @param name 姓名
* @param salary 工资
* @param year 入职年
* @param month 入职月
* @param day 入职日
*/
public Employee(String sName, double dSalary, int iYear, int iMonth, int iDay) {
this.name = sName;
this.salary = dSalary;
this.hireDate = new GregorianCalendar(iYear, iMonth-1, iDay);
}
/**
* 获取职员姓名
* @return 职员的姓名
*/
public String getName() {
return this.name;
}
/**
* 获取职员的工资
* @return 职员的工资
*/
public double getSalary() {
return this.salary;
}
/**
* 获取入职时间的一个副本
* @return 入职的时间
*/
public GregorianCalendar getHireDate() {
return (GregorianCalendar) this.hireDate.clone();
}
/**
* 给职员增加工资
* @param byPercent 增加的系数
*/
public void raiseSalary(int byPercent) {
this.salary += this.salary * byPercent/100;
}
private String name;
private double salary;
private GregorianCalendar hireDate;
}
/**
* 管理员类,继承自普通员工类
* @author yifan
* @version 1.0 2014-05-14
*/
class Manager extends Employee {
/**
* 构建一个新的管理员
* @param name 管理员的姓名
* @param salary 管理员的工资
* @param year 入职年
* @param month 入职月
* @param day 入职日
*/
public Manager(String name, double salary, int year, int month, int day) {
super(name, salary, year, month, day);
this.bonus = 0;
}
/**
* 构建一个新的管理员并设置管理员的奖金
* @param name 姓名
* @param salary 工资
* @param year 入职年
* @param month 入职月
* @param day 入职日
* @param dBanus 奖金
*/
public Manager(String name, double salary, int year, int month, int day, double dBaous) {
super(name, salary, year, month, day);
this.bonus = dBaous;
}
/**
* 设置该管理员的奖金
* @param dBonus 奖金
*/
public void setBanus(double dBonus) {
this.bonus = dBonus;
}
/**
* 获取管理员的工资
* @return 管理员的工资
*/
@Override
public double getSalary() {
return super.getSalary() + this.bonus;
}
private double bonus;
}相关推荐
SuperDB,演示使用SQLiteOpenHelper继承子类操作数据库例子
SuperDB,演示使用SQLiteOpenHelper继承子类操作数据库例子,演示数据库的增删查等操作。
Java继承格式代码演示_Java编程基础09——面向对象_代码块&继承&方法&final
1.代码块的概述和分类(了解)(实际不用)A:代码块概述在Java中,使用{}括起来的代码被称为代码块。B:代码块分类根据其位置和声明的不同,可以分为局部(方法中)代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。C:常见代码块的应用a:局部代码块在方法中出现;限定变量生命周期,及早释放,提高内存利用率b:构造代码块 (初始化块)在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每...
ABB机器人C#二次开发实战:从通信打通到数据读写的落地指南(附完整工程)
最近在做自动化产线升级项目时,遇到一个核心需求:用C#上位机实时读取ABB机器人的关节角度、IO信号,同时下发运动指令和参数配置。翻遍全网,要么是Robot Studio的基础操作教程,要么是C++/VC++的老旧案例,C#相关的实操内容要么只给片段代码,要么跳过通信配置、权限设置等关键步骤,导致刚上手时踩了无数坑——连接超时、数据读不到、写入无响应,甚至误触发机器人安全保护。
Java基础
本套课程是针对零基础的同学讲解Java入门级别的视频资料,对于有一定编程基础的同学可以不用参考。直接建议学习数据库或者JavaWEB,甚至企业级框架技术
视频教程-SAP S4 HANA FICO COPA 获利能力分析-ERP
SAP S4 HANA FICO COPA 获利能力分析 从业超过8年的SA...
【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上
按理说指定了环境变量为后面几张显卡,模型会自动加载到我们指定的显卡上。可是查看gpu使用情况,发现还是加载在了第一张显卡上,这是为啥呢?
JAVA_继承演示01_ExtendsDeamo01.java
/** *ExtendsDeamo01 *继承演示01 */ public class ExtendsDeamo01{ public static void main(String[] args){ Women woman = new Women("妮妮"); woman.print(); woman.desc();//desc()是父类的方法,但是可以被自动调用,这就表示de
如何借助GPT- 6 写好一篇论文:从引言到参考文献完整步骤(附专业提示词)
七哥就结合这篇文章的写作思路,依次拆解引言、方法、结果、讨论、摘要、标题和参考文献分别应该怎么写,同时也聊聊,在每一个环节里,我们可以怎样合理借助 GPT-6,让论文写作变得更清晰、更高效。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。8、不修改、不补写、不猜测任何样本量、阈值、剂量、设备型号、参数或统计方法,所有缺失但影响方法完整性的信息统一标记为【待作者确认】、检查方法中设定的每一个分析项目能否在后续结果章节找到对应位置。
手动编译java的package问题,及演示继承的基本实现
不用IDE,而直接用命令编译JAVA包,仔细看了下,作一个记录。 以下的URL值得收藏。 http://www.aiuxian.com/article/p-2115485.html http://www.cnblogs.com/haolujun/archive/2013/03/02/2939698.html http://blog.sina.com.cn/s/blog_533074eb01...
LeRobot 入门教程(十七)NVIDIA IsaacLab Arena 集成
LeRobotEnvHub现已集成IsaacLabArena实现GPU加速仿真,支持GR1/G1/伽利略人形机器人实体和多种操作任务。安装需满足CUDA GPU、Ubuntu系统和IsaacSim 5.1.0要求,通过conda环境配置依赖项。系统提供SmolVLA和PI0.5等预训练策略评估功能,支持视频录制和并行环境配置。环境配置选项涵盖机器人实体、任务类型、观测维度等参数,并包含针对CUDA内存、视频录制等常见问题的解决方案。此外,LightWheel AI还通过LW-BenchHub引入了包含268
Unity 佳能SDK 及数据获取
3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中。1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你。2. 将SDK这两个文件放到 Unity Plugins文件夹。
Java继承的基本概念
简述Java中的继承 继承的概念 今天又学习会Java中的继承,那么什么是继承呢? 继承就是扩展,假设现在有一个Person人的类,有属性name姓名、age年龄,但我们现在要创建好多类,如Student学生类、Teacher教师类等,都属于人这个范畴,都要拥有name姓名、age年龄及相应的setter、gettert属性,如果每个类都同时加入这些属性及方法,必定会造成代码冗余和结构混乱,而继承很好地解决了这个问题,继承父类的子类可以使用父类中的方法和属性。(注:父类中的私有属性不可直接使用哦,需要由ge
36. 在 SAP Integration Suite 里打通入站 HTTP:iFlow 端点鉴权、角色授权与多节点 403 排障实战
本文探讨了SAP Cloud Integration中HTTP入站连接的认证与授权机制。在Cloud Foundry环境下,认证(证明身份)和授权(权限控制)需分开处理:认证可采用Basic、OAuth或mTLS等方式,授权则通过角色实现。文章详细解析了两种主流配置路径:基于IdP用户的Basic认证(需配置Role Collection)和基于OAuth Client/Service Instance的系统调用(通过Service Key管理权限)。特别指出ABAP系统在多节点环境下可能因cookie编码
C++_基本语法笔记_继承和多态
思想与Java差不多。
14、多层螺旋 CT 技术详解
本文详细解析了多层螺旋CT(MSCT)技术的原理与应用,涵盖其相对于单层螺旋CT的优势,包括图像采集速度提升、分辨率提高和噪声降低。文章深入探讨了扫描仪的几何结构、离散投影模型以及关键参数如切片宽度和螺距的影响,并重点介绍了z-滤波重建算法及其离散实现流程。通过流程图和公式推导,系统梳理了从投影获取到图像重建的全过程。同时分析了MSCT在临床中的实际应用案例及未来发展趋势,如更高分辨率、更低辐射剂量和智能化算法等方向,全面展示了MSCT在现代医学影像中的核心价值。
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
用java的继承怎么输出直_java中继承是什么?如何实现继承
详细内容本篇文章给大家带来的内容是介绍java中继承是什么?如何实现继承。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。java中继承是什么?Java中的继承是一个对象获取父对象的所有属性和行为的机制。它是面向对象编程系统(OOP)的重要组成部分。Java中继承的思想是,创建基于现有类的新类。从现有类中继承,可以重用父类的方法和字段。此外,还可以在当前类中添加新方法和字段。【相关...
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
class基本语法与继承
class基本语法与继承 1.关于class 定义一个类 class Person{ constructor(skin,language){ this.skin=skin; this.language=language; } say(){ console.log('I am a Person') } } 由于class本质还是一个function 因此它就会拥有一个prototype属性,当new一个class时,会把cla
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
lua 类、继承、多重继承
--[[ lua是没有类的,但是可以用元表模仿类和类的继承 --]] --@file Account.lua --@desc 类Account local Account = { balance = 0 } function Account:new(o) o = o or {} --lua使用元表实现类,继承 setmetatable(o, self) s
如何在Python中使用类继承提高代码复用性?
更多Python学习内容:ipengtao.com在面向对象编程(OOP)中,继承是一种创建新类的方式,这些新类继承了一个或多个父类的特性。Python 中的继承允许我们定义保持代码通用性和简洁性的类层次结构。本文将详细探讨 Python 中的类继承机制,包括基本继承、多重继承、方法重写以及使用 super() 函数的技巧,并通过具体示例演示这些概念。类的继承基础继承可以定义一个派生类,继承一个或...
JAVA 继承基本类、抽象类、接口
Java是一个面向对象的语言,java面向对象一般有三大特征:封装、继承、多态。封装:就是把一些属性和方法封装到一个类里。继承:就如子类继承父类的一些属性和方法。多态:就如一个父类有多个不同特色的子类。这里我就不多讲解,下面我主要说明一个继承。继承是OOP(面向对象)的一个特色,java只支持单继承(如果继承两个有同样方法的父类,那么就不知道继承到那个父类的,所以java只支持单继承)。继承是ja
演示同一包中子类的继承性访问控制
1 问题子类是基于父类创建的新类,它继承了父类的某些属性和方法,同时可以增添新的属性和方法。Java中子类不能访问父类的private成员,但可以访问其父类的public成员。但是父类的属性或方法使用其他访问控制符修饰时,子类对父类的属性或方法的继承将受到一定的限制。当子类和父类处在同一个包中时,子类可继承了其父类中哪些成员变量和方法?2 方法在java中演示同一包中子类的继承性访问控制的时候,可...
python继承语法_Python继承
本篇文章帮大家学习python继承,包含了Python继承使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。什么是继承?继承用于指定一个类将从其父类获取其大部分或全部功能。 它是面向对象编程的一个特征。 这是一个非常强大的功能,方便用户对现有类进行几个或多个修改来创建一个新的类。新类称为子类或派生类,从其继承属性的主类称为基类或父类。子类或派生类继承父类的功能,向其添加新...
继承
一、继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Android工程师继承自研发部员工,而维网络维护工程师和硬件维护工程师继承自维护部员工。这些员工之间会形成一...
Java---继承详解
对于java面向对象三大特征之一继承的知识点总结,非常详细
170



被折叠的 条评论
为什么被折叠?



