最直接简单的说法就是继承中方法存在重写,而变量不存在.
你要是能看懂这个例子基本就能了解了
孔子爹:教书("JavaSE"),40//孔子爹年龄40,教javaSE
孔子:教书("论语"),玩游戏(),20//孔子年龄20,教论语
//有人找孔子爹去教书,结果只有孔子在家,孔子化妆成爹去教
孔子爹 k爹 = new 孔子(); //向上转型 化妆,装爹。
k爹.教书(); //方法重写,孔子只会教论语,所以是论语
sop(k爹.age); //而年龄是化妆出来的,就是父类的年龄是40
//下课了
孔子 k = (孔子)k爹; //向下转型 去妆,还原本身
孔子 k = new 孔子();
k.教书(); //教书还是只能教论语
sop(k.age); //卸过妆之后年龄就是20
k.玩游戏();可以使用自己独有的方法
看懂这个例子以后遇到什么情况都往这个方向走就可以了 |