1.继承
1.概念:继承是一种可以使一个类(子类或派生类)继承另一个类(父类或基类)属性和方法的机制。通过继承,子类自动拥有父类的字段和方法,还可以有自己的字段和方法。
2.特点:
代码重用:继承支持代码重用,可以将公共代码放在父类中。
简化代码:通过集成已有类来扩展新类,不需要从零开始。
单继承:Java只支持单一继承,即一个类只能继承一个父类。
3.构造器:子类不能继承父类的构造器,但子类可以通过super()
调用父类的构造器。
4.覆盖(override):子类可以覆盖父类的方法,以实现自己的行为。这要求子类方法的名称、返回类型及参数列表与父类方法完全相同。
2.多态
1.概念:多态是指允许不同类的对象对同一消息做出响应的能力。在Java中,多态主要通过继承、接口和抽象类实现。
2.特点:
运行时多态:Java的多态在运行时生效,具体调用哪个类的方法由对象的实际类型决定。
编译时多态:通过方法重载实现,依赖于方法的参数列表。
3.实现方式:
方法重载(Overload):同一个类中存在多个同名方法,但这些方法的参数列表不同。
方法覆盖(Override):子类重写父类的方法。
向上转型:子类的引用可以赋值给父类类型的变量,通过父类类型的引用调用的方法是子类的方法。
3.继承与多态的关系
继承和多态紧密相关,继承提供了多态实现的基础。具体来说:
继承允许子类拥有父类的属性和方法,提供了多态实现的可能性。
多态允许父类引用指向子类对象,实现不同类的对象对同一消息的响应。
在面向对象编程中,继承和多态一起工作,促进了代码的可重用性和扩展性,并有助于实现松耦合设计。