JAVA 快餐 8 方法的重写与重载/多态方法处理

作者: gavin 分类: Java,Java 快餐 发布时间: 2020-11-03 09:28

一、设计时多态的方法

package com.example.hibernate.pro3;

public class DeviceService {



//
//    根据接收的参数执行不同的行为
//

    public String getDevice(){
        return "医师领取的设备";
    }
    public String getDevice(String notes){
        return "医护领取的设备";
    }
    public String getDevice(String offices,String notes){
        return "病人量取设备";
    }

    ///////////////////f
    public static void main(String[] args) {
        //创建设备服务对象
        DeviceService ds = new DeviceService();

        //领取设备
        String res = ds.getDevice();//医师领取的设备
        String res2 = ds.getDevice("手术用品");//医护领取的设备
        String res3 = ds.getDevice("骨科","固定带");//病人量取设备
    }

}

二、运行时的多态

package com.example.hibernate.pro4;

import com.example.hibernate.pro3.DeviceService;

/**
 * Hospital
 * @Remark:医院的类型
 */
public class Hospital {
    /**
     * @param patient 病人
     * @param dept    科室
     */
    public void register(Patient patient, Department dept) {
        System.out.println("开始挂号到对应的科室:" + dept.name);
        dept.treatment(patient);
    }

    public static void main(String[] args) {
        //创建医院对象
        Hospital hs = new Hospital();
        //骨科
        Orthopaedics op = new Orthopaedics();
        //外科
        Surgery sg = new Surgery();
        sg.name = "外科";
        //病人
        Patient patient = new Patient();
        patient.name = "TMP";
        //挂号
        hs.register(patient, sg);
    }
}

    /**
     * 病人
     */
    class Patient{
        public int id;
        public String name;
        public String gender;
        public int age;
        public float health;
    }
    /**
     * 科室
     */
    class Department{
        public int id;
        public String name;
        public String intro;

        //接收病人的方法
        public void treatment(Patient patient){
            System.out.println(this.name + "接收病人,开始治疗");
        }


    }
    class Orthopaedics extends Department{
        public void treatment(Patient patient){
            System.out.println(this.name + "骨科接收到病人,开始治疗");
        }
    }
    class Surgery extends Department{
        public void treatment(Patient patient){
            System.out.println(this.name + "外科接收到病人,开始治疗");
        }
    }

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注