分派

来源:互联网 发布:淘宝店铺被彻底释放 编辑:程序博客网 时间:2024/05/22 17:36
package FenPai;public class Horse {public void run() {System.out.println("马跑");}}
package FenPai;public class BlackHorse  extends Horse {public void run() {System.out.println("黑马跑");}}

package FenPai;public class WriteHorse extends Horse {public void run() {System.out.println("白马跑");}}
package FenPai;public class Mozi {public void ride(Horse h) {System.out.println("墨子骑马");h.run();}public void ride(BlackHorse h) {System.out.println("墨子骑黑马");h.run();}public void ride(WriteHorse h) {System.out.println("墨子骑白马");h.run();}}

package FenPai;public class Erzi extends Mozi {public void ride(Horse h) {System.out.println("儿子骑马");h.run();}public void ride(BlackHorse h) {System.out.println("儿子骑黑马");h.run();}public void ride(WriteHorse h) {System.out.println("儿子骑白马");h.run();}public static void main(String[] args) {Mozi mozi=new Mozi();Erzi erzi=new Erzi();Mozi erzi2=new Erzi();Horse horse=new Horse();BlackHorse blackHorse=new BlackHorse();Horse blackHorse2=new BlackHorse();System.out.println("---先选择方法接受者真实类型,后选择方法参数静态类型----");System.out.println("---或者先选择方法参数静态类型 ,后选择方法接受者真实类型----");//重载根据静态类型判断 重写根据真实类型//静态类型  真实类型//静态分派  动态分派mozi.ride((WriteHorse)horse);System.out.println("---mozi.ride(horse) 墨子骑马   马跑----");mozi.ride(blackHorse);System.out.println("---mozi.ride(blackHorse); 墨子骑黑马 黑马跑----");mozi.ride(blackHorse2);System.out.println("---mozi.ride(blackHorse2);墨子骑马  黑马跑----");erzi.ride(horse);System.out.println("---erzi.ride(horse);儿子骑马 马跑----");erzi.ride(blackHorse);System.out.println("----erzi.ride(blackHorse);儿子骑黑马  黑马跑---");erzi.ride(blackHorse2);System.out.println("---erzi.ride(blackHorse2);儿子骑马   黑马跑----");erzi2.ride(horse);System.out.println("---erzi2.ride(horse);-儿子骑马 马跑---");erzi2.ride(blackHorse);System.out.println("---erzi2.ride(horse);-儿子骑黑马 黑马跑---");erzi2.ride(blackHorse2);System.out.println("---erzi2.ride(blackHorse2);-儿子骑马  黑马跑---");}}



0 0