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... } }
一个类只能由一个父类,不能多继承。一个父类可以多个子类,子类能重写父类的方法。调用同个方法产生不同的结果就是多态
优点:多态提高了代码的复用性,提供更高的可托充性,以及可维护性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现