那么在视频中为什么shout()就能调呢,偏偏seeDoor()就不能。,有没有一种可能shout不能调,seeDoor能调
animalCry(new Dog());
这个是只运行子类和父类相同的方法,不同的方法不运行是这样嘛?
就是为啥只输出shout方法,而不输出seeDoor方法
因为这个animalCry这个方法里面只是调用了shout方法的,所以只会输出这个方法的,没有调用seeDoor方法的自然不会输出的
这个“缺省”的包内友好,这个包的范围只有最近的包?还是说什么?
为啥我的会报错啊
Dog和Cat书写有问题哦
为啥不能加public
同一页面中只能有一个public修饰的类,这是规定。
下面那个图的,想问一下老师这段代码没有animalcru(new dog())和animalcry (new cat())会不会对下面那段代码有影响
老师,我没有听明白,这两者有关系吗
有了,animalCry这个方法存在才能被调用,不存在是不能被调用的
微信里解决
老师,为什么(animal a)就等于dog new 和cat new呀,那个a哪里来的呀
a是一个变量名,你可以给任何名字的
这些代码为什么要分成两部分写呀,一个java,一个测试类
??
这个是为了测试一下多态的使用呀
static void animalCry(Animal a){ a.shout(); } 请问这个a是对象吗,不然为什么能通过a调用shout方法呢?
对的,a是对象,是你通过方法传递进来的。
1、这里为什么要用static修饰?别的地方都是Animal,为什么这里写成animalCry?
这个单词是什么意思
2、多态的调用格式就是第二幅图的固定格式吗?
1、static修饰的类从属与类,在类加载的时候就会立即加载,并且被所有对象共享,这是static的特性,这个方法是我们自己设计的,你可以不加static,不是固定写法,完全看自己如何设计
animalCry是我们自己写的方法,你要调用这个方法当然是要写animalCry了
2、固定格式,父类引用指向子类对象
老师我想在这个里面不止实现就是喵喵喵还想在执行的时候另一个类里的例如狗看门,猫抓老鼠的时候一起实现应该用什么方法啊
这样写就可以实现了 a是狗,b是猫,传入两个变量,然后分别调用他们的方法。
猫抓老鼠是Cat类里面私有的方法,所以你是父类是调用不了的。这是多态的性质决定的。
你要是非要调用猫抓老鼠的话,你方法参数就不能定义为Animal类型,应该定义Cat类型,然后b就可以调用抓老鼠的方法了。
这样写就可以实现了 a是狗,b是猫,传入两个变量,然后分别调用他们的方法。
猫抓老鼠是Cat类里面私有的方法,所以你是父类是调用不了的。这是多态的性质决定的。
你要是非要调用猫抓老鼠的话,你方法参数就不能定义为Animal类型,应该定义Cat类型,然后b就可以调用抓老鼠的方法了。
老师,这上画圈的地方我看的懂,但我自己就是敲不出来,您有没有啥方法,逻辑告诉我,指引我一步步想到?
这个代码很简单,其实就是随意写了一个方法,之后在main方法中调用这个方法。这里就是老师的要给小练习,涉及不到逻辑。
老师,我这咋会报错呢?
看animalCry这个方法中需要的是什么类型的参数。
老师,这封装后为什么会报错呢?
放在红线上看看是什么错误呢,不是类名重复了吧
老师,是一加public就报错
一个java文件只能有一个被public修饰的类
老师,接口也是只能有一个被public修饰吗,还有其他只能有一个被public修饰的东西吗?谢谢老师
只要是java文件,不过你是类还是接口,只能有一个被public修饰,而且被public修饰的这个类名或者接口名,必须和文件名相同。这个需要记住哦