package com.siyeh.igtest.visibility;

import java.util.List;
import java.util.ArrayList;

public class MethodOverloadsParent extends MethodOverloadsGrandparent
{
    public void foo(Integer x)
    {

    }

    public void reverse(List l)
    {

    }
}
