多态 的理解

简介: 多态 的理解

1. 定义


多态概念:同一个行为具有多个不同表现形式或形态的能力


简单点理解 :比如 吃东西 张三早上吃鸡蛋🥚 李四早上吃肉🥩 王五吃番茄🍅,每个人吃的东西可以不一样,这就是生活的多态!!!多种状态!


到代码上就是 不同的对象调用同一个方法会实现不同的效果!


就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。


2. 多态实现的条件


①必须在继承的体系之下

②子类必须要对父类的方法进行重写

③通过父类的引用重新调用重写的方法

多态的体现:在代码运行时,当传递不同类对象时,会调通对应类中的方法。


3. 代码的实现初步理解

我们先写一个父类 pet

class pet{
    String name; //成员变量 名字
    String color;//成员变量 颜色
//构造初始化
    public pet(String name, String color) {
        this.name = name;
        this.color = color;
    }
//一个方法 eat 
    public void eat(){
        System.out.println("(pet)"+name+"吃东西!");
    }
}

再写两个子类 分别是 petdog 和 petcat

class petdog extends pet{//继承pet类的petdog类
    public petdog(String name, String color) {
        super(name, color);
    }
    public void eat(){//重新定义eat这个方法
        System.out.println("(dog)"+name+"吃🦴骨头!");
    }
}
class petcat extends pet{//继承pet类的petcat类
    public petcat(String name, String color) {
        super(name, color);
    }
    public void eat(){//重新定义eat这个方法
        System.out.println("(cat)"+name+"吃🐟小鱼!");
    }
}

写一个main , 调用这些类 让我们理解多态

public class csdn {
    public static void main(String[] args) {
        pet xiaobai = new petdog("小白","白色");//给成员变量赋值
        pet huamao  = new petcat("花猫","花色");//给成员变量赋值
       //xiaobai和huamao都调用eat这个方法,出现不同的结果
        xiaobai.eat();
        huamao .eat();
    }
}


看运行结果图


2a00443b87f744d083b8c07f6caa112c.png


so!!我们看到 这里调用的方法 并不是 父类内部的,而是 子类内部的。而且方法名相同,但是不同的对象(dog和cat)实现起来输出结果也就不一样!!!这就是多态!多态的一部分!!!

4. 多态不止如此

public class csdn {
//可以通过写一个方法 参数是一个父类
//这样直接就可以通过这个方法实现
//我们可以较大程度的降低代码的圈复杂度
    public static void eat(pet p){
        p.eat();
    }
    public static void main(String[] args) {
        pet xiaobai = new petdog("小白","白色");
        pet huamao  = new petcat("花猫","花色");
//        xiaobai.eat();
//        huamao .eat();
         eat(xiaobai);//这两行代码实现了上面的功能
         eat(huamao);
    }
}

用尽量简单的方式使对象进入可工作状态

相关文章
|
2天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
337 90
|
10天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。
|
人工智能 前端开发 API
前端接入通义千问(Qwen)API:5 分钟实现你的 AI 问答助手
本文介绍如何在5分钟内通过前端接入通义千问(Qwen)API,快速打造一个AI问答助手。涵盖API配置、界面设计、流式响应、历史管理、错误重试等核心功能,并提供安全与性能优化建议,助你轻松集成智能对话能力到前端应用中。
785 154
|
16天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
996 152
|
3天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
2天前
|
数据采集 人工智能 搜索推荐
别再“调教”ChatGPT了!用Qwen2.5打造24小时在线数字分身
在AI时代,专属“数字分身”正从科幻走向现实。依托Qwen2.5-14B大模型、LoRA微调技术及LLaMA-Factory Online平台,仅需四步即可打造会说话、懂风格、能办事的个性化AI助手,让每个人拥有自己的“贾维斯”。
215 152