上下转型奇葩想法
上转型:
注明:皇上就是developer
皇上登基想知道各宗各派都有什么本领。宣李武将上朝,李武将得二子 李一&李二(李一和李二extends 李武将)
李家历代精通长剑(父类方法),但李一在射箭(李一独有方法)方面颇有造诣 李二短剑(李二独有方法)玩的很6。
现宣李武将上朝,
皇上: 听闻爱将武功高强,不知都会哪般武艺?
李武将:回皇上,末将精通长剑,此乃李家传统(他是李家老大,他要做代表。也是上转型好处,俩儿子一个个都要说俺会耍长剑,太坠了,不如让父类说了算了)
皇上:哦?就这般如此?
旁白:皇上不愿意了,伴君如伴虎呐,眼见要生气,这时候大儿子李一上前一步,替父亲说话。(此乃上转型:对象是李一 但是代替李家<父亲>说话 也即父类引用指向子类对象实例 )
下转型:
李一:回皇上,李家不仅精通长剑,俺还会射箭嘞!
皇上:666 表演我看看
李一:好滴(开始调用射箭方法)
旁白:在皇上眼里只是李家射了箭,儿子代表父亲表演而已。但是儿子表演了父亲不会的东西,这个就是下转型。老子在前面当李家代表(父引用)但是又得表演射箭,可是自己没有这项技能啊,但是没关系他现在指向的是李一对象实例。这个时候父类需要强转成儿子才能表演射箭。
好像不对劲了 开始迷糊了,
父类引用可指向子类对象==老子代表小子统一发言
父类引用只能调用父子共有的方法,比如精通长剑。
父类引用若想调用子类方法,需要下转型成儿子引用才可。