课件中的第一种方案,在Master类中并没有实例化cat,那为什么可以直接用cat调用相应的方法呢?
package com.imooc.animal; public class Master { /*喂宠物: * 喂猫咪:吃完东西后,主人会带着去玩儿线球 * 喂狗狗:吃完东西后,主人会带着狗狗去睡觉 */ public void feed(Cat cat) { cat.eat(); cat.playBall(); } public void feed(Dog dog) { dog.eat(); dog.sleep(); } } package com.imooc.test; import com.imooc.animal.Cat; import com.imooc.animal.Dog; import com.imooc.animal.Master; public class MasterTest { public static void main(String[] args) { // TODO Auto-generated method stub Master master=new Master(); Cat one=new Cat(); Dog dog=new Dog(); master.feed(one); master.feed(dog); } }
课件中的第一种方案,在Master类中的feed()方法中并没有实例化cat和dog,那为什么可以直接用cat和dog调用相应的方法呢?这是什么原理? 求老师解答!
0
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕阿莹
2019-04-22 10:26:11
其实,这里是要调用这个方法时,必须要求穿对应的参数类型的对象过来,所以要是使用这个方法,必然会有传过来实例化好的这个类型的对象。
其实,参数除了传基本类型,也可以穿引用类型的。这里就和传String类型的参数是一样的,String 也是一个引用类型的,同学可以想象一下,之前传的参数是String类型。
因为我们知道,一定会传一个Cat对象或Dog 对象过来,我们又知道这个类型的对象都有什么方法,
所以,我们就可以在方法中,先用假定以及传过来了一个叫cat的或者dog的对象去调用他肯定有的方法或者属性了。到时候调用该方法时,传过来的这个参数,在方法中就是叫cat或者dog了
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星