首页 > 其他分享 >多态参数练习

多态参数练习

时间:2023-01-05 23:22:42浏览次数:37  
标签:salary name bonus double void 练习 多态 参数 public

package com.hspedu.poly_.polyaraneter_;

public class Test {
    public static void main(String[] args) {
        Worker laLa = new Worker("laLa", 1000);
        Manager koko = new Manager("koko",1000,7000);
        Test test = new Test();
        test.showEmployee(laLa);
        test.showEmployee(koko);

        test.testWork(laLa);
        test.testWork(koko);
    }
    public void showEmployee(Employee e) {
        System.out.println(e.getAnnual()); //动态绑定机制
    }

    public void testWork(Employee e) {
        if (e instanceof Worker) {
            ((Worker) e).work(); //向下转型
        } else if (e instanceof Manager) {
            ((Manager) e).manger(); //向下转型
        } else {
            System.out.println("错了,宝儿");
        }
    }
}
package com.hspedu.poly_.polyaraneter_;

//员工类
public class Employee {
    //共有的属性
    private String name;
    private double  salary;
    //构造器
    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    //get set 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getAnnual() {  //计算年薪水的方法
        return 12 * salary;
    }

}
package com.hspedu.poly_.polyaraneter_;
//普通员工类
public class Worker extends Employee{
    //构造器
    public Worker(String name, double salary) {
        super(name, salary);
    }
    //普通员工类独有的方法 work
    public void work() {
        System.out.println(" 普通员工 " + getName() + " 正在摸鱼 ");
    }

    @Override
    //重写获取年薪的方法
    //因为普通员工没有其他收入,则直接调用父类方法 不用添加别的东西
    public double getAnnual() {
        return super.getAnnual();
    }
}
package com.hspedu.poly_.polyaraneter_;
//经理类
public class Manager extends Employee{
    //经理类独有的属性
    private double bonus;
    //构造器
    public Manager(String name, double salary, double bonus) {
        super(name, salary);
        this.bonus = bonus;
    }
    //get set 方法
    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    public void manger() {
        System.out.println(" 经理 " + getName() + " 正在划水 ");
    }

    //重写获取年薪的方法
    //因为经理多了一个奖金的收入 故在原先的基础上  + bonus
    @Override
    public double getAnnual() {
        return super.getAnnual() + bonus;
    }
}

 

标签:salary,name,bonus,double,void,练习,多态,参数,public
From: https://www.cnblogs.com/shuqiqi/p/17029110.html

相关文章

  • 多态机制练习
    packagecom.hspedu.encap;//测试类publicclasstest{publicstaticvoidmain(String[]args){Person[]persons=newPerson[5];//Person类......
  • 继承ModelViewSet 获取url上参数的写法
    url('^task/reqs/(?P<pk>\d+)/$',patroltaskviews.PatrolTaskViews.as_view({"get":"getTaskReqs"})),views视图classPatrolTaskViews(ModelViewSet):defget......
  • Android JNI GetMethodID中sig参数说明
    GetMethodID中sig参数是对函数的签名,也可以说标识,具体的格式为:(函数参数)返回值。方法签名中用大写的字母对应了java的基本数据类型:Z->booleanB->byteC->charS-......
  • c++算法练习day01【2022年蓝桥杯省赛B组题目】每天做一点、、、
    这个练习目前来说就比较宽松,打算在寒假(基本也就是这一个月每天刷几道题吧)题目一:小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做a道题目,周六和周......
  • 新品《XY6877ZA 5G AI核心板》参数详情介绍!
        深圳市新移科技有限公司推出的《XY6877ZA5GAI核心板》是基于联发科MT6877(天玑900)平台所研发出的5G全网通核心板。高端5G芯片,并拥有旗舰级大核的它,采用沉金生产......
  • 天梯赛练习题L2(021-025)
    L2-021点赞狂魔如果有并列,则输出标签出现次数平均值最小的那个#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;const......
  • bat cmd 无效参数/选项 - deleting
    Windowbatexpdp数据库定时任务逻辑备份数据库定时删除N天前的旧文件Linuxshellcrontabexpdp定时任务逻辑备份数据库定时删除旧文件错误配置forfiles命令,目录......
  • golang web开发获取get、post、cookie参数
    在成熟的语言java、python、php要获取这些参数应该来讲都非常简单,过较新的语言golang用获取这些个参数还是费了不少劲,特此记录一下。golang版本:1.3.1在贴代码之前如果能......
  • C#调用VC的DLL的接口函数参数类型转换一览表
    handle---------IntPtrhwnd-----------IntPtrchar*----------stringint*-----------refintint&-----------refintvoid*----------IntPtrunsignedchar*-----refbyt......
  • hive调优之参数设置
    目录一、使用spark引擎0、HiveonSpark1、spark资源申请2、作业过程中的相关参数一、使用spark引擎0、HiveonSparkhttps://www.cnblogs.com/lq0310/p/9855245.html1......