猿问

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

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)?

这些到底是怎么个步骤啊?很不懂-。-

拜托讲讲好吗? 感谢!




嘻嘻小仙
浏览 1008回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答