java怎么调用方法

2022-04-10 综合 73阅读
抽象类:动物有方法cry();
具体类1:猫extends动物实现方法cry()
具体类2:狗extends动物实现方法cry()

动物dog=new狗();
动物cat=new猫();

cat.cry();//结果是喵喵~叫
dog.cry();//结虹是旺旺~叫

由于dog是new出来的是狗而cat是new出来的猫,所以虽然大家都属于动物,但其实不是同一种动物。并且想让狗学猫叫,猫学狗叫是不可能的

动物dog=new狗();其实相当于理解成以下两条语句
1。狗dg=new狗();
2。动物dog=(动物)dg;//将dg的狗类型转化成了动物类型

所以调用时当然只会调用狗的方法旺旺旺,而不会去调用其它动物的方法!

所以问题的关键在于生成时是new狗还是new猫!因为动物是不能被new出来的(抽象类不能实例化)所以我们就能分出执行的是哪个方法;
请参考
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com