多态(Polymorphism)是面向对象编程(OOP)的一个核心概念,它允许一个接口被多个类实现,从而使得一个方法调用可以根据对象的实际类型表现出不同的行为。多态性提高了代码的灵活性和可扩展性。
多态的类型
编译时多态(静态多态):通过方法重载(Method Overloading)实现。
运行时多态(动态多态):通过方法重写(Method Overriding)和接口实现(Interface Implementation)实现。
本文讲述动态多态。
特点
方法重写:子类重写父类的方法,提供不同的实现。
向上转型:使用父类引用指向子类对象。
动态绑定:在运行时根据对象的实际类型调用相应的方法。
限制
多态只能通过父类或接口引用来调用方法,而不能调用子类特有的方法。
向上转型后,父类引用只能访问父类中定义的方法和属性。
案例 1
public class Parent {
public String name = "父类成员变量";
public void print()
{
System.out.println("父类方法");
}
public void say(){
System.out.println("hello");
}
}
public class Son extends Parent {
public String name = "子类成员变量";
@Override
public void print() {
System.out.println("子类方法");
}
public