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());
}
}笔试用手写的,我去掉Ball ball = new Ball("PingPang");
以及在ball前加了Ball
真不知道要考我什么。。闷

解决方案 »

  1.   

    interface Rollable extends Playable,Bounceable
    这个继承应该不能这么写吧?
    interface Rollable extends Playable implements Bounceable
    初始化应该写在构造方法中!!!
    我也不知道是不是对的,我这里没有IDE,不好验证!!!
      

  2.   

    考的是接口中的变量,默认是public static final的,不能改变
    所以在后面的类中再重新定义(ball = new Ball("Football");)是错误的
      

  3.   

     去掉 ball = new Ball("Football");
     
      

  4.   

    接口当中只能有常量,绝不能有实例字段。interface Playable
    {
        void play();
    }
    interface Bounceable
    {
        void play();
    }
    interface Rollable extends Playable,Bounceable
    {
        final test ball = new test("PingPang");//加个final关键字
    }
    class test implements Rollable
    {
        private String name;
        public String getName()
        {
            return name;
        }
        public test(String name)
        {
            this.name = name;
        }
        public void play()
        {
            //ball = new test("Foottest");
            System.out.println(ball.getName());
        }
    }
      

  5.   


    补充:
    1. 可以在extends后跟interface吗? 可以,升级成新接口时就是用的extends.
    2. extends后可以有1个以上的接口吗?可以
    2. 可以extends自两个含有相同方法的接口吗?可以(不然搞出前面两个interface有什么用?)