说一说你对多态的理解

多态是指子类对象可以直接赋给父类变量(父类引用指向子类对象),但运行时依然表现出子类的行为特征,(同一类型的对象在执行同一个方法时,能表现出多种行为特征)

  1. 当把一个子类对象直接赋给父类引用变量时,例如BaseClass obj = new SubClass;
  • 这个obj引用变量的编译时类型是BaseClass,而运行时类型是SubClass,
  • 当运行时调用该引用变量的方法时,其方法行为总是表现出子类方法的行为特征,这就会出现:相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态。
  1. 多态有两种形式:编译时多态(静态多态)和运行时多态(动态多态)。
  2. 编译时多态:静态多态
  • 编译阶段,编译器能够确定调用哪个方法,这是通过方法的重载来实现的。
  • 编译时多态依赖于方法的签名(方法名和参数列表),根据调用时提供的参数类型和数量来确定具体调用的方法。
  1. 运行时多态
  • 在程序运行时,根据实际对象的类型来确定调用的方法,这是通过方法的重写来实现的。运行时多态依赖于对象的实际类型,而不是引用类型。
posted @ 2025-05-14 16:31  kuki'  阅读(19)  评论(0)    收藏  举报