java面向对象三大特性---多态

多态

根据调用方法不同而产生不同的结果称为“多态”

多态分为编译时多态和运行时多态。

编译时多态

复制代码
package org.oop.demo06;

class Test {
    void print(){
        System.out.println("Hello");
    }
    void  print(String x){
        System.out.println("hello" + x);
    }
    public static void main(String []args){
        Test ts = new Test();
        ts.print();     // hello
        ts.print("jack");   //  hellojack
    }

}
复制代码

编译时,代码会根据你调用的参数列表动态决定调用哪一个函数

 

运行时多态

  形成条件: 有继承关系、子类重写父类、父类指向子类对象

复制代码
package org.oop.demo06;
//运行时多态
//多态的形成
class Animal {
    void run(){
        System.out.println("animal is running...");
    }

    void eat(){
        System.out.println("animal is eat...");
    }
}

// 子类继承父类
class Dog extends Animal {
    // 子类重写父类
    void run(){
        System.out.println("Dog is running...");
    }
}


class Cat extends Animal {
    void run(){
        System.out.println("cat is running...");
    }

    void eat(){
        System.out.println("cat is eatting...");
    }
}

public class AnimalDemo{
    public static void main(String[] args){
        //父类引用指向子类
        //父类不能调用子类新增的方法
        Animal dog = new Dog();
        Animal cat = new Cat();
        dog.run();                  // Dog is running...
        dog.eat();                  // animal is eat...
        System.out.println("--------");
        cat.run();                  // cat is running...
        cat.eat();                  // cat is eatting...

    }
}
复制代码

一个类只能由一个父类,不能多继承。一个父类可以多个子类,子类能重写父类的方法。调用同个方法产生不同的结果就是多态

优点:多态提高了代码的复用性,提供更高的可托充性,以及可维护性

 

posted @   一杯咖啡钱  阅读(41)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示