当前位置: 首页 > java >正文

【Java学习笔记】多态参数

多态参数

应用:方法定义的形参类型为父类类型,实参允许为子类类型

// 父类
package polyparemeter;public class employee {private String name;private double salary;//构造器public employee(){}public employee(String name, double salary) {this.name = name;this.salary = salary;}public double getannual(){return 12 * salary;}public String getName() {return name;}//多态参数的体现,可以接收子类对象//父类独有的方法,返回员工工资public void showannual(employee e){System.out.println(e);System.out.println(e.getannual());//增加判断调用独有的方法System.out.println("\n接着使用instanceof操作符判断,调用独有的方法");if(e instanceof manager){manager mag = (manager) e;mag.manage();}else if(e instanceof worker){worker wok = (worker) e;wok.work();}}
}// 子类
package polyparemeter;public class manager extends employee{private double bonus;//构造器public manager(String name, double salary, double bonus) {super(name, salary);this.bonus = bonus;}// manage类独有的方法manage()public void manage(){System.out.println("经理 "  + getName() + " is managing");}//重写父类的getannual()方法public double getannual(){return super.getannual() + bonus;}
}package polyparemeter;public class worker extends employee {public worker(String name, double salary) {super(name, salary);}//worker类独有的方法public void work(){System.out.println("普通员工 " + getName() + " is working");}}// 主类
package polyparemeter;public class main {public static void main(String[] args) {worker tom = new worker("tom",2500);manager smith = new manager("smith",2500,5000);employee e = new employee();e.showannual(tom);System.out.println("==============================");e.showannual(smith);}
}// 运行结果
polyparemeter.worker@4554617c
30000.0接着使用instanceof操作符判断,调用独有的方法
普通员工 tom is working
==============================
polyparemeter.manager@74a14482
35000.0接着使用instanceof操作符判断,调用独有的方法
经理 smith is managin

代码解释

http://www.xdnf.cn/news/5672.html

相关文章:

  • 深度强化学习有什么学习建议吗?
  • VC++快捷使用安装libcurl
  • NY135NY141美光固态闪存NY162NY163
  • 歌曲《忘尘谷》基于C语言的歌曲调性检测技术解析
  • 深度学习---常用优化器
  • Nexus 私有仓库 + Nginx 反向代理部署文档
  • 数据结构(五)——串、数组、广义表
  • Ubuntu 安装 Docker(镜像加速)完整教程
  • java问题总结
  • Java笔记4
  • Windows重置网络,刷新缓存
  • 实训九 软件包管理
  • Python笔记:windows下永久配置pip镜像源
  • QT5.14安装以及新建基础项目
  • XOCIETY 携手 adidas 推出限量版 NFT 皮肤系列
  • 网络基础1(应用层、传输层)
  • Android CountDownTimer重写
  • RDMA核心组件 的总结表格
  • RSA算法详解一:初识RSA
  • Python爬虫如何获取JavaScript动态渲染后的网页内容?
  • VUE3基础样式调整学习经验
  • yarn workspace使用指南
  • 配置集群(yarn)
  • 消息队列如何保证消息可靠性(kafka以及RabbitMQ)
  • MySQL全量、增量备份与恢复
  • Qt创建项目
  • 基于千眼狼高速摄像机与三色掩模的体三维粒子图像测速PIV技术
  • 前苹果首席设计官回顾了其在苹果的设计生涯、公司文化、标志性产品的背后故事
  • CentOS下安装MySQL数据库
  • node .js 启动基于express框架的后端服务报错解决