为了账号安全,请及时绑定邮箱和手机立即绑定

多态的具体的问题,cast,请大家帮忙解释一下

多态的具体的问题,cast,请大家帮忙解释一下

嘻嘻小仙 2017-04-15 08:33:55
public class F {     String m() { return "F.m()" + this.s(); }     String m(F f) { return "F.m(F)" + s(); }     private String m(G g) { return "F.m(G)"; }     String k() { return "F.k()" + this.m(this); }     String k(G g) { return "F.k(G)"; }     static String s() { return "F.s()"; }     static String t() { return "F.t()"; } } public class G extends F{     String m() { return "G.m()" + super.s(); }     String m(F f) { return "G.m(F)"; }     String m(G g) { return "G.m(G)"; }     String k(F f) { return "G.k(F)" + this.m((G)f); }     static String s() { return "G.s()"; } } public class H extends G {     String k(F f) { return "H.k(F)"; }     String k(G g) { return "H.k(G)" + super.m((F)g); } } F a = new F(); G b = new G();F c = b;        //是否意味着c 即是F类的也是G类的? (跟上一行的b什么关系啊?) H h = new H(); 为什么 b.k(a) 报错?为什么 c.m(b)  c.m(a)  c.m(c)  的结果是 G.m(F)? 为什么((G)h).k(b)  的结果是 H.K(G)G.m(F)?这些到底是怎么个步骤啊?很不懂-。- 拜托讲讲好吗? 感谢!
查看完整描述

1 回答

  • 1 回答
  • 2 关注
  • 1007 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信