search
HomeJavaJavaBaseHow to implement polymorphism in java

How to implement polymorphism in java

Nov 11, 2019 pm 03:23 PM
javaPolymorphismaccomplishWay

How to implement polymorphism in java

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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool