Ways to implement polymorphism in Java:
1. Interface implementation;
2. Inherit parent class method Rewrite;
3. Method overloading in the same class.
Necessary conditions for the existence of polymorphism:
1. Inheritance is required;
2. Overriding is required;
3. The parent class reference points to the subclass object.
The benefits of polymorphism:
1. Substitutability.
Polymorphism is replaceable for existing code. For example, polymorphism works for the Circle class, but it also works for any other circular geometry, such as a torus.
2. Extensibility.
Polymorphism enables scalability of code. Adding new subclasses does not affect the polymorphism, inheritance, and operation and operation of other features of existing classes. In fact, it is easier to add new subclasses to obtain polymorphic functions. For example, after realizing the polymorphism of cones, semi-cones and hemispheres, it is easy to add the polymorphism of sphere class.
3. Interface-ability.
Polymorphism is achieved by the superclass providing a common interface to subclasses through method signatures, which are then completed or overridden by subclasses. As shown in Figure 8.3. The super class Shape in the figure specifies two interface methods that implement polymorphism, computeArea() and computeVolume(). Subclasses, such as Circle and Sphere, improve or override these two interface methods in order to achieve polymorphism.
4. Flexibility.
It embodies flexible and diverse operations in the application and improves usage efficiency.
5. Simplicity.
Polymorphism simplifies the code writing and modification process of application software. This feature is particularly prominent and important when dealing with calculations and operations on a large number of objects.
Polymorphic examples:
(1) Related classes
class A ...{ public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); } } class B extends A...{ public String show(B obj)...{ return ("B and B"); } public String show(A obj)...{ return ("B and A"); } } class C extends B...{} class D extends B...{}
(2) Question: What is the following output result?
A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.println(a1.show(b)); ① System.out.println(a1.show(c)); ② System.out.println(a1.show(d)); ③ System.out.println(a2.show(b)); ④ System.out.println(a2.show(c)); ⑤ System.out.println(a2.show(d)); ⑥ System.out.println(b.show(b)); ⑦ System.out.println(b.show(c)); ⑧ System.out.println(b.show(d)); ⑨
(3) Answer
① A and A ② A and A ③ A and D ④ B and A ⑤ B and A ⑥ A and D ⑦ B and B ⑧ B and B ⑨ A and D
Recommended tutorial: java tutorial
The above is the detailed content of How to implement polymorphism in java. For more information, please follow other related articles on the PHP Chinese website!