
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference Between super and this in Java Program
Along with various other keywords Java also provides this and super as special keywords which primarily used to represent current instance of a class and it's super class respectively. With this similarity both these keywords have significant differences between them which are listed as below -
Sr. No. | Key | this | super |
---|---|---|---|
1 | Represent and Reference | this keyword mainly represents the current instance of a class. | On other hand super keyword represents the current instance of a parent class. |
2 | Interaction with class constructor | this keyword used to call default constructor of the same class. | super keyword used to call default constructor of the parent class. |
3 | Method accessibility | this keyword used to access methods of the current class as it has reference of current class. | One can access the method of parent class with the help of super keyword. |
4 | Static context | this keyword can be referred from static context i.e can be invoked from static instance. For instance we can write System.out.println(this.x) which will print value of x without any compilation or runtime error. | On other hand super keyword can't be referred from static context i.e can't be invoked from static instance. For instance we cannot write System.out.println(super.x) this will leads to compile time error. |
Example of this vs. super
Equals.jsp
class A { public int x, y; public A(int x, int y) { this.x = x; this.y = y; } } class B extends A { public int x, y; public B() { this(0, 0); } public B(int x, int y) { super(x + 1, y + 1);// calls parent class constructor this.x = x; this.y = y; } public void print() { System.out.println("Base class : {" + x + ", " + y + "}"); System.out.println("Super class : {" + super.x + ", " + super.y + "}"); } } class Point { public static void main(String[] args) { B obj = new B(); obj.print(); obj = new B(1, 2); obj.print(); } }
Output
Base class : {0, 0} Super class : {1, 1} Base class : {1, 2} Super class : {2, 3}
Advertisements