静态分派
重载属于静态分派 靠静态类型来判断
public void sayHello(Human guy){
System.out.println("hello human");
}
public void sayHello(Man guy){
System.out.println("hello man");
}
public void sayHello(Woman guy){
System.out.println("hello woman");
}
Human man=new Man();
Human woman =new Woman();
sayHello(man);
sayHello(woman);
如上代码中输出为:
hello human
hello human
动态分派
重写属于动态分派 靠实际类型来判断
public abstract class Human{
public abstract void sayHello();
}
public class Man extends Human{
public void sayHello(){
System.out.println("hello man");
}
}
public class Woman extends Human{
public void sayHello(){
System.out.println("hello woman");
}
}
Human man=new Man();
Human woman =new Woman();
man.sayHello();
woman.sayHello();
man=new Woman();
man.sayHello();
如上代码输出为:
hello man
hello woman
hello woman
单分派 多分派
java中 静态分派属于多分派,动态分派属于单分派。
网友评论