黑马程序员技术交流社区
标题:
下面代码有什么错误
[打印本页]
作者:
孙铭泽
时间:
2012-8-23 22:10
标题:
下面代码有什么错误
interface Playable { void play();
}
interface Bounceable { void play();
}
interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang");
}
class Ball implements Rollable { private String name; public String getName()
{ return name; }
public Ball(String name)
{ this.name = name; }
public void play()
{ ball = new Ball("Football");
System.out.println(ball.getName()); }
}
作者:
唐杨老师
时间:
2012-8-24 08:13
interface Playable { void play();
}
interface Bounceable { void play();
}
interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang");
//( Ball ball 这里定义的Ball类的对象ball在大括号外是无法使用的)
}
class Ball implements Rollable { private String name; public String getName()
{ return name; }
public Ball(String name)
{ this.name = name; }
public void play()
{
Ball
ball = new Ball("Football");
//故而,这里就需要从新将Ball写在ball前边,这样就可以了
System.out.println(ball.getName()); }
}
作者:
吴通
时间:
2012-8-24 21:37
楼上的你好,我按你的方法编译通过了,不过运行没有通过
接口Rollable 实现了接口Playable和接口Bounceable,为什么还能在接口里面新建一个类呢?
作者:
张忠豹
时间:
2012-8-25 22:52
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang"); //首先,这句话是正确的,接口中是可以定义常量的,这里的ball就是如此
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football"); //其次,这里之所以不能改变ball所指向的内存地址,就归功于接口中的final关键字
System.out.println(ball.getName());
}
//测试一下
public static void main(String[] args) {
ball.play(); //最后,如果还是不能信服的话,自己可以试一下,把该类中play方法中的ball = new Ball("Football");代码注释了,运行一下该代码
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2