First of all, let’s introduce the following super keyword and this keyword:
(Recommended tutorial: java introductory tutorial)
1. this keyword
This is an object of its own, representing the object itself. It can be understood as: a pointer to the object itself.
The usage of this in Java can be roughly divided into three types:
1. Ordinary direct reference
this is equivalent to pointing to the current object itself.
2. The names of the participating members have the same name, use this to distinguish them
3. Reference the constructor of this class;
2.Super keyword
super can be understood as a pointer to its own super (parent) class object, and this super class refers to the parent class closest to itself.
Super also has the following uses:
1. Ordinary direct reference
Similar to this, super is equivalent to a reference pointing to the parent class of the current object, so you can Use super.xxx to reference members of the parent class.
2. When the member variables or methods in the subclass have the same name as the member variables or methods in the parent class, use super to distinguish them
(Video tutorial recommendation: java course)
Differences:
1. Different references
1. Super: It is a reference to the parent object in the current object.
2. this: refers to the reference of the current object
2. Different calling functions
1. super: calls a certain constructor in the base class (should be first statement in the constructor).
2. this: Call another constructor formed in this class (should be the first statement in the constructor)
3. Different reference objects
1. super: refers to members in the direct parent class of the current object (used to access member data or functions in the parent class that are hidden in the direct parent class. The base class and the derived class have the same member definitions). Format: super. variable name super.Member function data name (actual parameter).
2. this: represents the current object name (where ambiguity is likely to occur in the program, this should be used to indicate the current object; if the form of the function has the same name as the member data in the class, in order to prevent being Hidden requirements, in this case you need to use this to specify the member variable name).
The above is the detailed content of What is the difference between the super keyword and this keyword in java. For more information, please follow other related articles on the PHP Chinese website!