Java 分派

2018-10-16  本文已影响0人  意梦春秋

静态分派


重载属于静态分派 靠静态类型来判断

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中 静态分派属于多分派,动态分派属于单分派。

上一篇 下一篇

猜你喜欢

热点阅读