| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 662 人关注过本帖
标题:[求助]一个java程序问题?
只看楼主 加入收藏
jtws3000
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-11-3
收藏
 问题点数:0 回复次数:11 
[求助]一个java程序问题?

请问这个程序怎么改才能改的正确,我知道是错误的,但现在不知道该怎么改了,请高手指点一下

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());
}
}

搜索更多相关主题的帖子: java 
2007-03-21 12:46
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
[CODE]interface Playable {
void play();
}
interface Bounceable {
void bounce();
}
interface Rollable extends Playable, Bounceable {
void roll();
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public Ball(){

}
public void play() {
System.out.println("I am playing!!");
}
public void bounce(){
System.out.println("I am bouncing!");
}
public void roll(){
System.out.println("I am rolling!");
}
public static void main(String[] args){
Rollable ball=new Ball();
ball.play();
ball.bounce();
ball.roll();
}
}[/CODE]
这样就可以运行了,仔细体会一下接 口的定义和作用

[此贴子已经被作者于2007-3-21 14:38:13编辑过]


可惜不是你,陪我到最后
2007-03-21 13:15
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
public Ball(String name) {
this.name = name;
}

Rollable ball=new Ball();

汗.............

淘宝杜琨
2007-03-21 13:25
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
错在我加注释的那两行

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");
Ball ball = new Ball("Football");
System.out.println(ball.getName());
}
}

淘宝杜琨
2007-03-21 13:27
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
,看错了,以为有一个无参构造函数呢

还有,那么多个接口同一个方法,什么意思,弄错了吧

Bounceable表示它会bounce啊

Rollable表示它会roll啊

可惜不是你,陪我到最后
2007-03-21 14:37
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
首先要弄清除为什么说JAVA没有了多继承要比C++更加简单和强壮

如果说 ClassA 和 ClassB 都拥有 void hello(){} 方法,而ClassC去同时继承ClassA与ClassB,那么你认为ClassC会执行A的方法还是B的呢?
这就是一个很典型的多继承的弊病

所以JAVA决定废弃这个功能从而获取更健壮的语法

看现在,InterfaceA 和 InterfaceB 都定义有 void hello(); 方法,而ClassX同时实现了接口A和B,那么ClassX会实现的是A的方法呢还是B的方法呢?
其实动动脑就知道,这两个方法都是一样的,我实现那个不可以?


扩展一下
如果InterfaceA定义的是 String hello();方法
而 InterfaceB定义的是 void hello(); 方法,那么ClassX又该怎么办呢?---很简单,编译出错.

淘宝杜琨
2007-03-21 14:47
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

就是就是,人才也

有种想给你加精的冲动


可惜不是你,陪我到最后
2007-03-21 15:02
jtws3000
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-11-3
收藏
得分:0 
你们都很厉害呀!!

请各位大侠多多指点小妹. BLOG: http://blog..cn/iexe
2007-03-21 16:04
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
丢~~你又不是新会员了~~~你还不了解这个论坛的荣誉是那个么?

淘宝杜琨
2007-03-21 16:05
jtws3000
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2006-11-3
收藏
得分:0 
这里真是高手如云!!!

请各位大侠多多指点小妹. BLOG: http://blog..cn/iexe
2007-03-21 16:07
快速回复:[求助]一个java程序问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017112 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved