解决一个java谜语

时间:2015-06-08 15:59:56

标签: java class oop if-statement

我给了班级A和班级C,而且我应该编写班级B,这会使班级{{1}的主要输出总是C。 正弦有一个随机的布尔变量,只有当它是假的时候我得到一个好的结果,当它是真的我没有得到输出时。 我不允许在课程successful!A中进行任何更改。

我理解问题出现在班级C的第三个if中,但是我可以在班级C中做出哪些更改,以防止进入此B

if

2 个答案:

答案 0 :(得分:3)

B级应如下:

public class B extends A{
    public String foo(String s){
        return s+s;
    }

    public A getA(boolean flag){
        if (flag){
            A a = new A();
            return(a);
        }
        else{
            B b = new B();
            return (b);
        }
    }
}

答案 1 :(得分:1)

也许解决方案:

public class B extends A {


    public A getA(boolean flag){
        if (flag){ //true -> usual A with foo == input
            return new A(); //or this
        }
        //false-> custom A with foo == input + input
        return new A(){
            @Override
            public String foo(String s) {
                return s+s;
            }
        };
    }
}