请问为什么结果里会有Test$1@73549af8 哪里错了呢?
来源:6-10 编程练习
carlcs
2019-04-19 18:06:05
public class Test {
public static void main(String[] args) {
BallTest.Inner_m a = new BallTest().new Inner_m();
System.out.println(a.play());
BallTest b = new BallTest();
System.out.println(b.info());
System.out.println(new BallTest(){
@Override
public String play() {
String str = "匿名内部类:打排球";
return str;
}
}
);
}
}
public class BallTest implements Ball{
public void playBall(Ball ball){
ball.play();
}
@Override
public String play() {
return null;
}
class Inner_m implements Ball{
@Override
public String play() {
String str = "成员内部类 打篮球";
return str;
}
}
public String info(){
class Inner_f implements Ball{
@Override
public String play() {
String str ="方法内部类 打乒乓球";
return str;
}
}
return new Inner_f().play();
}
}
public interface Ball {
String play();
}
输出显示
成员内部类 打篮球
方法内部类 打乒乓球
Test$1@73549af8
3回答
同学你好,这里调用一下你写的这个方法就可以了:
之前打印toString方法是因为如果你要打印一个对象的时候,这个对象的类重新了toString 方法,它会自动去调用的。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕阿莹
2019-04-22
同学可以在BallTest中按快捷键Alt+shift+s
自动生成一个toString方法
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
吃吃吃鱼的猫
2019-04-19
同学你好,原因如下:
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题