慕粉3465594
你导一下Person类试一下
qq_谜离_03319966
在右边有红色的小方块表示错误的行
两眼懵逼
表示没看懂,还是把代码贴出来比较靠谱
Mark_G
百度到答案了,windows-->perference-->java-->compiler-->改为6.0
右键项目--》build path--》configure build path--》java—》compiler--》更改为6.0
解决了
Moirai
项目右键==》property==》java Compiler==》compiler compliance level设置大于1.5
慕前端0336099
可以,有用到 认真体会 就可以了
笔杆战神
@SuppressWarnings
深夜雀电台
//1 有警告,需忽略 Person p = new Child(); //2 无警告 Child p = new Child(); p.sing();
new Child()创建了Child类的实例化对象,变量p引用了这个Child类的对象,所以p是引用变量,而p前面的类名则表明p的类型,即是Person类型或者Child类型。
Person类型下的方法已经过时,而Child类型依然实现了这个方法(注意这里的“过时”的意思,老师讲的时候是说sing()方法定义得不太合适,因为有些类根本不需要实现这个方法,就像有些人不会唱歌,但是标准里却有唱歌这个标准)。所以如果要将引用变量声明为Person类型并去调用过时的sing()方法是不合适的,所以要有警告;然而就像有些人还是很会唱歌的,若声明为Child类型的并去调用sing()方法,它不仅会唱,唱得还非常好,是再合适不过了,所以就无需警告。我觉得还是要理解“过时”的含义,过时不是错,只是不适用于大多数。
######
这也只是我的理解,觉得我理解得也不透彻,因为也注意到了这个问题,所以才这样关注。以后也会继续关注的。
360微笑
Ctrl+1,试试这个快捷键