Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>There is no difference between <code>this.method()</code> and <code>super.method()</code> until the said <code>method()</code> gets <em>overridden</em> in the caller's class.</p> <p>For example, with</p> <pre class="lang-java prettyprint-override"><code>class SuperClass { public void method() { System.out.println("SuperClass"); } } class SubClass extends SuperClass { public SubClass() { method(); this.method(); super.method(); } } </code></pre> <p>Calling</p> <pre class="lang-java prettyprint-override"><code>new SubClass(); </code></pre> <p>Prints</p> <pre class="lang-none prettyprint-override"><code>SuperClass SuperClass SuperClass </code></pre> <p>While with</p> <pre class="lang-java prettyprint-override"><code>class SuperClass { public void method() { System.out.println("SuperClass"); } } class SubClass extends SuperClass { @Override public void method() { System.out.println("SubClass"); } public SubClass() { method(); this.method(); super.method(); } } </code></pre> <p>Calling</p> <pre><code>new SubClass(); </code></pre> <p>Prints</p> <pre class="lang-none prettyprint-override"><code>SubClass SubClass SuperClass </code></pre> <hr> <p>In parallel, there is no difference between <code>this.field</code> and <code>super.field</code> until the said <code>field</code> gets <em>hidden</em> in the caller's class.</p> <p>For example, with</p> <pre class="lang-java prettyprint-override"><code>class SuperClass { protected String field = "SuperClass"; } class SubClass extends SuperClass { public SubClass(String field) { System.out.println(field); System.out.println(this.field); System.out.println(super.field); } } </code></pre> <p>Calling</p> <pre class="lang-java prettyprint-override"><code>new SubClass("parameter"); </code></pre> <p>Prints</p> <pre class="lang-none prettyprint-override"><code>parameter SuperClass SuperClass </code></pre> <p>While with</p> <pre class="lang-java prettyprint-override"><code>class SuperClass { protected String field = "SuperClass"; } class SubClass extends SuperClass { private String field = "SubClass"; public SubClass(String field) { System.out.println(field); System.out.println(this.field); System.out.println(super.field); } } </code></pre> <p>Calling</p> <pre><code>new SubClass("parameter"); </code></pre> <p>Prints</p> <pre class="lang-none prettyprint-override"><code>parameter SubClass SuperClass </code></pre> <hr> <p>Side note: <code>methods()</code> get <em>overriden</em> while <code>fields</code> get <em>hidden</em>.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload