多态

面向对象的三大特性:封装、继承、多态

一. 多态的定义

指同一个行为,在不同对象上表现出不同的实现效果。

简单概括:同一接口,不同实现;父类引用指向子类对象,调用方法时执行子类重写后的逻辑。

二.实现多态的三大必要前提

存在继承 / 实现关系:子类继承父类,或类实现接口;
方法重写(override):子类重写父类的同名方法;
父类引用指向子类对象:父类 变量 = new 子类();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

三.Java中没有虚函数

虚函数的存在是为了多态。

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

四. 多态的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();

    }
}
posted on 2026-06-27 21:18  小巴拉  阅读(1)  评论(0)    收藏  举报