As the third major feature of Java - polymorphism, everyone must be familiar with it, but I believe there is always some vagueness about this abstract concept. think in Java has done a lot of explanations in this chapter, and specifically explained three question.
1.多态解决了什么问题? 2.什么是多态? 3.多态的扩展
Polymorphism solves the problem of type decoupling. Polymorphism prevents us from paying attention to the specific type. The design of polymorphism is to make us forget about types. Because we don't need to pay attention to specific types, we can reuse a lot of code, and we can use a piece of code to solve similar problems. This plays a big role in our development process. This decoupling reduces the use involvement of each layer. In general, the problem solved by polymorphism is the decoupling of types. Ideologically speaking, it makes us forget about genres.
When I talk about this question, you may subconsciously think that I want to give some very abstract and conceptual explanations. In fact, what I want to explain is not these conceptual things. These are directly Baidu That’s it. So back to the topic, what is polymorphism? Polymorphism actually has some other names, but I prefer one of them, runtime binding.
When explaining this word, let's first understand binding. Binding is divided into pre-run binding and run-time binding. Binding before running means that the program already knows the specific type of the method to be used when the program is not bound. On the contrary, runtime binding means that the program does not know the specific method type used before running. Only the runtime knows the specific method type used. This also achieves the effect of not needing to know the specific Type.
The overall mechanism of Java is to use runtime binding. Except properties and private and static methods.
We know that polymorphism can only control the methods of the parent class, and cannot operate the methods extended by the subclass, but we will definitely encounter this Condition. Then at this time we can no longer use up conversion and use down conversion. But there is a problem here, that is, we don’t know whether this type is the type you convert, and there will be conversion errors. This is unsafe in C, but there is a mechanism in Java, which is down conversion. You must force conversion to check, so that security control can be achieved. If not, a ClassCastException error will be reported.
Related recommendations:
In-depth understanding of the three major characteristics of Java Polymorphism
The above is the detailed content of The third major feature of Java-polymorphic understanding. For more information, please follow other related articles on the PHP Chinese website!