Java多态性的定义以及类型

2023-07-06   


多态性:顾名思义就是拥有“多种形态”的含义,是指属性或方法在子类中表现为多种形态。它包括两种类型:
   静态多态性:包括变量的隐藏、方法的重载(指同一个类中,方法名相同[方便记忆],但是方法的参数类型、个数、次序不同,本质上是多个不同的方法);
   动态多态性:是指子类在继承父类(或实现接口)时重写了父类(或接口)的方法,程序中用父类(或接口)引用去指向子类的具体实例,从代码形式上看是父类(或接口)引用去调用父类(接口)的方法,但是在实际运行时,JVM能够根据父类(或接口)引用所指的具体子类,去调用对应子类的方法,从而表现为不同子类对象有多种不同的形态。不过,程序代码在编译时还不能确定调用的哪一个类的方法,只有在运行时才能确定,故又称为运行时的多态性。(Java中的方法默认都是虚拟的,不用加virtual关键字,而C++却不是)
   例如:
   class Animal
   public void roar()
   System.out.println(“动物:…”);
  
  
   class Cat extends Animal
   public void roar()
   System.out.println(“猫:喵,喵,喵,…”);
  
  
   class Dog extends Animal
   public void roar()
   System.out.println(“狗:汪,汪,汪,…”);
  
  
   public class AnimalTest
   public static void main(String args[])
   Animal am=new Animal();
   am.roar();
   am=new Dog();
   am.roar();
   am=new Cat();
   am.roar();
  
  


相关内容:

  1. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
  2. 顺丰快递Java软件工程师面试题
  3. 顺丰快递Java软件工程师面试题
  4. Java中实现多态的机制
  5. Overload和Override的区别
  6. Java中实现多态的机制是什么?