今天在学数据结构的时候看马士兵老师的视频,说到集合框架的问题
他讲c作为一个collection的引用,实际类型是Arraylist
c不可以访问arraylist中特有的方法,这里我有疑问,所以敲了如下的代码
结果很明确,在son中重写了father的print方法,所以输出的是“I an the son”;
但是要调用son中特有的p方法时,系统报错,表示a对象中没有此方法
所以,用父类的引用的好处主要是为了方便以后更改对象。
就好比father有两个son,这俩儿子都是对象,一个帅,一个丑
father ugly = new son(); // 这个是丑的
father diy = new diy(); // 备用人,自定义的人
son handsome = new son(); // 这个是帅的
有一天,father觉得ugly这个太丑了,就直接把ugly = new diy();
重新换个,弄成帅的。
但是handsome这个儿子一辈子也变不了,出来的时候就已经明确是son类型的了。
唯一的缺点就是ugly这个丑儿子不能使用son类中特有的方法。
但是为了以后的改变,也没办法。
所以啊,人生来不平等,人丑就该多读书,我们可没有可以更换的备用人,人生路走过去就再也不会回来了
本人小白,若有问题,欢迎大神随时指点.......