Home >Java >Javagetting Started >What is java polymorphism

What is java polymorphism

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-11-14 16:20:306378browse

What is java polymorphism

Polymorphism is the ability of the same behavior to have multiple different manifestations or forms. Polymorphism is the same interface, using different instances to perform different operations, as shown in the figure:

What is java polymorphism

Polymorphism is the embodiment of multiple expressions of objects.

现实中,比如我们按下 F1 键这个动作:
·如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
·如果当前在 Word 下弹出的就是 Word 帮助;
·在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。

Advantages of polymorphism

·1. Eliminate the coupling relationship between types

·2. Replaceability

·3. Extensibility

·4. Interface

·5. Flexibility

·6. Simplification

Three necessary conditions for the existence of polymorphism

·Inheritance

##·Override

·The parent class reference points to the child class object

For example:

Parent p = new Child();

When calling a method using polymorphism, first check whether the method exists in the parent class. If not, a compilation error will occur; if so, call the subclass with the same name. method.

The benefits of polymorphism: it allows the program to be well expanded and can handle objects of all classes universally.

The following is a demonstration of a polymorphic instance. Please see the comments for detailed description:

Test.java file code:

public class Test {
    public static void main(String[] args) {
      show(new Cat());  // 以 Cat 对象调用 show 方法
      show(new Dog());  // 以 Dog 对象调用 show 方法
                
      Animal a = new Cat();  // 向上转型  
      a.eat();               // 调用的是 Cat 的 eat
      Cat c = (Cat)a;        // 向下转型  
      c.work();        // 调用的是 Cat 的 work
  }  
            
    public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  
}
 
abstract class Animal {  
    abstract void eat();  
}  
  
class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
  
class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}

Execute the above program, the output result is:

吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠

php Chinese website, a large number of free

Java introductory tutorials, welcome to learn online!

The above is the detailed content of What is java polymorphism. 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