First of all, let’s talk about the general function of @Override:
1. Help yourself to check whether you have correctly overridden the existing methods in the parent class;
2. Tell people who read the code that this is a rewriting method.
Example:
For example, now we have a base class:
(Video tutorial recommendation: java video tutorial)
Now we write an Apple subclass, inherit this base class, and override the show_name() method in the base class.
The result of execution is that the words Apple:2 will be printed.
In fact, when we manually override the method of the parent class, it is easy to remember the parameters of the method incorrectly. If we do not add @Override at this time, the editor will not prompt you: For example, if we do not add this tag, Quietly change the parameter to float type.
At this time, we actually did not successfully override the method according to our intention, so a hidden bug was born. On the contrary, the effect of adding Override is
The IDE gave an error message, indicating that our overwriting method failed.
It is often the result when we prepare to override the method. On the contrary, we overload the method.
Another example: Now we add a private method to the Fruit class, and try to override it in Apple
@Override private void grow(){ }
As a result, the compiler will prompt an error. This is a very low-level error, but there are At this time, we will not find it: that is, we try to override the private method, but when we remove the Override tag, the compiler will not report an error and it can be executed.
In fact, the so-called grow you override in Apple is just a private method for Apple itself. Completely a new approach.
This leads to a question, what is replication?
In object-oriented, only interfaces, shared methods, and inherited methods can be overridden. Private methods cannot be overridden. But after thinking about it again, I realized: it’s not that it cannot be overridden, but that there is no overriding at all. The concept of private methods!
This is the original intention of object-oriented design. The private method itself is to be encapsulated inside the class and not to be changed by others or referenced externally.
Recommended tutorial: java entry program
The above is the detailed content of What does @Override in java do?. For more information, please follow other related articles on the PHP Chinese website!