title: Overload and hide methods in Java
body: <p>i have an abstract class BaseClass with a public <code>insert()</code> method:</p>
  
  <pre><code>public abstract class BaseClass {
  
   public void insert(Object object) {
    // Do something
   }
  
  }
  </code></pre>
  
  <p>which is extended by many other classes. For some of those classes, however, the <code>insert()</code> method must have additional parameters, so that they instead of overriding it I overload the method of the base class with the parameters required, for example:</p>
  
  <pre><code>public class SampleClass extends BaseClass {
  
   public void insert(Object object, Long param){
    // Do Something
   }
  
  }
  </code></pre>
  
  <p>Now, if i instantiate the SampleClass class, i have two <code>insert()</code> methods:</p>
  
  <pre><code>SampleClass sampleClass = new SampleClass();
  sampleClass.insert(Object object);
  sampleClass.insert(Object object, Long param);
  </code></pre>
  
  <p>what i'd like to do is to hide the <code>insert()</code> method defined in the base class, so that just the overload would be visible:</p>
  
  <pre><code>SampleClass sampleClass = new SampleClass();
  sampleClass.insert(Object object, Long param);
  </code></pre>
  
  <p>Could this be done in OOP?</p>