方法重载用于执行参数不同时不同的方法,是编译时多态,重写是改变从父类那继承的方法
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();
//Orthopaedics op;
//外科
//Surgery sg = new Surgery();
Surgery sg;
//病人
//Patient patient = new Patient();
Patient patient;
//挂号
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 + "接收病人,开始治疗");
}
}
public 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 + "外科接收到病人,开始治疗");
}
}
}Orthopaedics op = new Orthopaedics();
报错了
子类继承父类,方法名称相同,参数名称个数和类型相同,执行的结果不同,方法的重写。
根据传递数据的不同,执行不同的行为~
public String getDevice(){} //名称相同,空参数方法
public String getDevice(String notes){} //名称相同,有参数
public String getDevice(String offices,String notes){} //名称相同,参数个数不同
方法名称返回类型相同,但参数个数不同,参数类型不一致,是方法的重载
继承:方法重载和方法重写
方法重载:方法名相同,参数不同。
方法重写:子类重新实现父类方法,也成为方法覆盖。