- 继承:面相对象编程中的核心概念,子类可以使用父类的属性和方法,无需重新编写,子类还可以添加新的属性和方法来提供特定的实现
- 多态:同一件事,发生在不同的对象上,会产生不同的结果,传递不同的对象会调用对应类中的方法
- 重载(Overload),同一个类中多个同名的方法,参数列表不同,提高代码复用性
- 重写(Override),是继承中的一个概念,子类可以重写父类的方法,以后默认情况调用该方法都会执行子类的重写版本,如果还想执行父类版本的方法,可以在重写的方法里加上super.方法()
静态绑定:编译时确定方法或属性访问的目标,不依赖于对象实际类型。
动态绑定:运行时根据对象实际类型确定方法或属性访问的目标,实现多态。
多态实现的必要条件:
-
继承:多态性发生在有继承关系的类之间。子类继承自父类,能够继承父类的属性和方法(注意:这里的属性和方法指的是非private的属性和方法,因为private属性和方法不被继承)。这是多态性实现的前提,因为子类需要能够重写父类的方法来提供自己的实现。
-
方法重写:子类需要重写父类中的非private和非static方法。由于private方法和static方法不受继承影响,因此它们不适用于多态性。这样,当通过父类引用调用被重写的方法时,实际上执行的是子类中的方法实现。
-
父类引用指向子类对象:在程序中,需要有父类类型的引用变量指向子类对象(例如,
Animal myDog = new Dog();
)。这是实现多态的关键,因为它允许我们以统一的接口(即父类接口)来操作不同的子类对象,从而在运行时根据对象的实际类型来调用相应的方法。 -
动态绑定