黑马程序员技术交流社区

标题: 接口的继承和实现问题 [打印本页]

作者: aion2013tian    时间: 2013-10-23 10:57
标题: 接口的继承和实现问题
本帖最后由 aion2013tian 于 2013-10-23 14:02 编辑

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不能被赋值
        System.out.println(ball.getName());
    }
}
这是为什么啊?求详细解释


作者: 寻丶丶觅    时间: 2013-10-23 11:19
接口中成员都有固定的修饰符,
常量为public static final;
方法 public abstract;
你借口中的Ball ball = new Ball("PingPang");已经被虚拟机自动添加了final属性,所以不可能被再次赋值;
作者: 田丰    时间: 2013-10-23 11:25
接口中的常量被final修饰,不能再被赋值,你可以看看接口的视频。
作者: aion2013tian    时间: 2013-10-23 14:01
明白了啊 接口中的常量默认修饰符为final




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2