You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.1 KiB

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
class InheritanceTest {
interface MyInterface {
public int foo();
}
class UniqueImpl implements MyInterface {
public int foo() {
return 5;
}
}
public void call_interface_method_Good_FP(MyInterface x) {
int a[] = new int[10];
a[x.foo()] = 0;
}
public void call_interface_method_Bad(MyInterface x) {
int a[] = new int[5];
a[x.foo()] = 0;
}
interface MyInterface2 {
public int foo();
}
abstract class AbsImpl implements MyInterface2 {
public abstract int foo();
}
class Impl1 extends AbsImpl {
@Override
public int foo() {
return 10;
}
}
class Impl2 extends AbsImpl {
@Override
public int foo() {
return 5;
}
}
/* By heuristics, [Impl1.foo] is selected. It is hard to say good or bad. */
public void call_interface_method2(MyInterface2 x) {
int a[] = new int[10];
a[x.foo()] = 0;
}
}