java写一个类吧,能不能自己写个java自带的类
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
11.
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 = newBall("Football");
System.out.println(ball.getName());
}
}
這個錯誤不容易發現。
答案: 錯。"interfaceRollable extends Playable, Bounceable"沒有問題。interface可繼承多個interfaces,所以這里沒錯。問題出在interface Rollable里的"Ball ball =new Ball("PingPang");"。任何在interface里聲明的interface variable (接口變量,也可稱成員變量),默認為public static final。也就是說"Ball ball = new Ball("PingPang");"實際上是"public staticfinal Ball ball = new Ball("PingPang");"。在Ball類的Play()方法中,"ball = newBall("Football");"改變了ball的reference,而這里的ball來自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改變reference的。因此編譯器將在"ball = newBall("Football");"這里顯示有錯。
總結
以上是生活随笔為你收集整理的java写一个类吧,能不能自己写个java自带的类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中怎么判断字母大小写_pyt
- 下一篇: java - 菱形输出