Java 中的多态、重写和重载
定义多态
讨论多态时Java,无论是重载还是重写都完全封装了它的本质。多态性最好通过抽象基类或接口来理解。
抽象基类和多态性
考虑一个带有抽象方法 goPee() 的抽象基类 Human,定义一个人类无法完全实现这一概念,直到在其子类中实例化,例如 Male 和Female.
public abstract class Human { ... public abstract void goPee(); }
在子类中重写
Male 和 Female 等子类根据其具体特征实现 goPee() 方法:
public class Male extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Stand Up"); } }
public class Female extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Sit Down"); } }
多态行为
通过此设置,Human 对象数组可以包含 Male 和 Female 实例。当对所有人类调用 goPee() 时,会执行特定于每个子类的重写方法,展示多态行为:
public static void main(String[] args) { ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); // Polymorphism: Execute overridden goPee() in each subclass for (Human person : group) person.goPee(); }
结论
多态性通过以下能力体现不同类的对象对同一方法调用的响应不同。它利用继承和方法重写来实现这种灵活性。
以上是Java 中的多态性如何通过继承和方法重写发挥作用?的详细内容。更多信息请关注PHP中文网其他相关文章!