多态

面向对象的三大特性:

封装、继承、多态

  1. 多态的定义
    多态是面向对象编程的核心概念,指同一操作作用于不同对象时,能产生不同的执行结果 。‌‌‌百科‌

‌通俗理解‌:即“同一个接口,多种实现”,允许不同类的对象对同一消息做出不同响应 。
‌主要分类‌:分为编译时多态(静态多态)(如函数重载)和运行时多态(动态多态)(如虚函数重写)。
‌常见例子‌:比如“动物叫”,狗会吠、猫会喵,但都调用“叫”这个方法 。‌‌
函数重载:

函数名相同
参数列表不同(参数顺序不同、参数类型不同、参数的个数不同)
函数重写:

类间,要有继承关系
要有虚函数(virtual)
2.多态的构成条件
继承
重写
父类指针或引用指向子类对象:Parent p = new Child();
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

3.Java中没有虚函数
虚函数的存在是为了多态。

Java 中其实没有虚函数的概念,它的普通函数就相当于 C++ 的虚函数,动态绑定是Java的默认行为。如果 Java 中不希望某个函数具有虚函数特性,可以加上 final 关键字变成非虚函数。

  1. 多态的Demo
    基类:Animal.java
    public abstract class Animal {

    public void eat(){
    System.out.println("Animal 正在吃");
    }
    public void sleep(){
    System.out.println("Animal正在睡");
    }
    public void introduction() {
    System.out.println("大家好!我是Animal");
    }
    }
    子类:1:Penguin.java
    public class Penguin extends Animal {
    public void eat(){
    System.out.println("企鹅 正在吃");
    }
    public void sleep(){
    System.out.println("企鹅正在睡");
    }
    public void introduction() {
    System.out.println("大家好!我是企鹅");
    }
    }
    子类2:mouse.java
    public class mouse extends Animal {
    public void eat(){
    System.out.println("QQ 正在吃");
    }
    public void sleep(){
    System.out.println("QQ正在睡");
    }
    public void introduction() {
    System.out.println("大家好!我是QQ");
    }
    }
    Main.java
    public class Main {
    public static void main(String[] args) {
    Animal animal = new Penguin();
    animal.eat();

    }
    }
    多态

    1. 多态的定义
      2.多态的构成条件
      3.Java中没有虚函数
    2. 多态的Demo
      基类:Animal.java
      子类:1:Penguin.java
      子类2:mouse.java
      Main.java
posted @ 2026-06-28 12:33  EEBond1  阅读(3)  评论(0)    收藏  举报