Home >Java >Javagetting Started >What are the necessary conditions for polymorphism to exist in Java?

What are the necessary conditions for polymorphism to exist in Java?

王林
王林forward
2020-07-13 16:26:553353browse

What are the necessary conditions for polymorphism to exist in Java?

Three necessary conditions for the existence of polymorphism:

(Recommended learning: java introductory tutorial)

  • Inheritance

  • Override

  • The parent class reference points to the child class object

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

Benefits of polymorphism:

It allows the program to be well expanded and can handle objects of all classes universally.

(Video tutorial: java video tutorial)

Test 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("看家");  
    }  }

Output result:

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

The above is the detailed content of What are the necessary conditions for polymorphism to exist in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete