// method override
import java.io.*;
class a extends a1 {
public static void f() { }
public void f1() { }
}
class a1 {
public void f() {}
public static void f1() {}
}
interface i {
void f1();
}
class c_a1_i extends a1 implements i {
}
interface ii {
int f();
}
abstract class c_a1_ii extends a1 implements ii {
}
interface i2 {
int f1();
}
interface i3 extends i, i2 {
}
class weak {
void f1() {}
}
class a2 extends weak implements i {
}
class a3 {
protected void f1() {}
}
class a4 extends a3 implements i {
// public void f1() {}
}
class a5 extends a3 implements i {
// if we override suspicious method, its OK
public void f1() {}
}
// deep inherit
class da1 { void f() {} }
class da2 extends da1 { void f() {} }
class da3 extends da2 {}
interface MyInterface
{
public void myMethod();
}
class MyInterfaceImpl implements MyInterface
{
public static void myMethod() { /* implementation goes here */ }
private static String toString() {
return null;
}
}
// Sun-style inheritance
class Sunc {
protected void f() {}
}
class Suncc extends Sunc {
public void f() {}
}
interface Suni {
public void f();
}
class Sunccc extends Suncc implements Suni {
}
// override static
class StA {
public static StA createInstance() {
return new StA();
}
}
class StB extends StA {
public static String createInstance() {
return null;
}
}
////////
class Foo {
protected static void foo(String s) {}
}
class Bar extends Foo{
private static void foo(String s) {}
}
///////////// IDEADEV-41779
class A {
public static C C() { return new C(); }
}
class B extends A {
}
class C extends B {
public C() {}
}
///////////////////////////
class Z1 {
public static final void doItBaby() {
System.out.println("Hello, diar A");
}
}
class Z2 extends Z1 {
public static void doItBaby() {
System.out.println("Hello, diar B");
}
}
///////////////////