当前位置: 首页 > news >正文

关于Java多态简单讲解

面向对象程序设计有三大特征,分别是封装继承多态
这三大特性相辅相成,可以使程序员更容易用编程语言描述现实对象。

其中多态

多态是方法的多态,是通过子类通过对父类的重写,实现不同子类对同一方法有不同的实现,从而达到灵活的编程。

重载重写的区别:
重载是同一类中,写多个相同的方法名但不同参数的方法,在调用方法时,根据传参类型、数量的不同,执行不同的函数。
重写是有继承关系的不同类中,子类对父类的相同函数重写的过程。

重载

主类:

public class Main {public static void main() {Student stu = new Student();System.out.println(stu.think();System.out.println(stu.think(12,20);System.out.println(stu.think("数风流人物,还看今朝"));}
}

学生类:

// 重载
// 在类中把think方法重载
// 对于学生类的思考,传入不同的参数类型可以运行不同的实现
public class Student() {public static void think() {// 学生开始思考System.out.println("仅仅开始思考...");}public static void think(int a,int b){// 学生计算两数相加System.out.println("两数相加等于: "a+b);}public static void think() {// 学生朗读文本System.out.println("开始朗读文本: "+str);}
}

重写

主类

public class Main {public static void Main() {// 多态的条件3(父类的引用指向子类的对象)Animal a = new Yuji();Animal b = new Gongsunli();a.speak();b.speak();}	
}

ADC类(父类)

public class Animal {// 射手说话的函数public void speak() {System.out.println("射手正在说话...");}
}

公孙离类(子类)

// 多态的条件1(父子类有继承关系)
public class Gongsunli extends Animal {// 公孙离类开始说话// 多态的条件2(子类需要重写父类的某方法)@Overridepublic void speak() {System.out.println("花绽放于长安的春日,温暖又幸福。")}
}

虞姬类(子类)

public class Yuji {// 虞姬类开始说话@Overridepublic void speak() {System.out.println("来来,妾当与大王对饮。")}
}
http://www.dtcms.com/a/175106.html

相关文章:

  • 社交距离调节下的情绪神经反应:基于360°视频的fMRI证据
  • 浏览器开发者工具Network面板中复制请求的相关信息(结合PostMan)
  • Redis设置永久密码
  • 指针的应用
  • DIC技术在焊接试样循环加载疲劳试验中的应用探究
  • uDistil-Whisper:低数据场景下基于无标签数据过滤的知识蒸馏方法
  • Kaamel白皮书:GenAI 时代的隐私困境
  • 05 Supply Chain Operations Reference (SCOR) Model
  • MySQL性能调优探秘:我的实战笔记 (上篇:从EXPLAIN到SQL重写)
  • [java八股文][Java并发编程面试篇]并发安全
  • OpenCV的floodFill(漫水填充)分割
  • 如何开发一个笑话管理小工具
  • 拟南芥T2T基因组-文献精读127
  • POC-公网对讲机的实现
  • 画流程需可以用这个画图
  • 硬件工程师面试常见问题(16)
  • java springboot解析出一个图片的多个二维码
  • Linux(十四)进程间通信(IPC),管道
  • 鸿蒙系统被抹黑的深层解析:技术、商业与地缘政治的复杂博弈-优雅草卓伊凡
  • 基于Blender的AI插件——2D图片生成3D模型
  • Android Intent 页面跳转与数据回传示例(附完整源码)
  • 项目整合管理(二)
  • 几何类型(Geometry Types)虽然名称相似,但在结构、维度和用途上是有明显区别的
  • CUDA编程 - 如何在 GPU 上使用 C++ 函数重载 - cppOverload
  • C++学习知识点汇总
  • 前端正则学习记录
  • Winform(12.控件讲解)
  • 解决Hyper-V无法启动Debian 12虚拟机
  • Android Retrofit框架分析(三):自动切换回主线程;bulid的过程;create方法+ServiceMethod源码了解
  • Webview通信系统学习指南