首页 > 其他分享 >多态的含义

多态的含义

时间:2024-08-15 23:53:10浏览次数:16  
标签:子类 含义 多态 cal new 父类 方法

目录

1、多态的定义

2、多态存在的三个必要条件

3、多态在Java中的表现形式


1、多态的定义

Java 多态(Polymorphism)是面向对象编程的一项核心概念,它允许对象以多种形式出现。

多态其实和继承息息相关,多态通常是指声明一个父类可以指向很多个不同的子类对象,而且每个子类表现出的形式不一样。例如:有以下这种继承关系:

// 声明父类类型 new子类对象,这个其实很好理解就像你声明Person类型但是new的是Student对象一样(Person person = new Student()),意思就是你new的这个学生就是个人。

Cal cal = new Add(3,2);
cal = new Sub(3,2);
cal = new Mul(3,2);
cal = new Div(3,2);

如上面的代码,声明一个父类类型可以new很多个不同的子类对象,它们也都可以调用父类中的getResult()方法,这个方法可以在子类中重写,这样就可以通过调用这一个方法来实现多个功能了,这就是多态。

2、多态存在的三个必要条件

  1. 继承
  2. 重写
  3. 父类引用指向子类对象 Cal cal = new Add();

3、多态在Java中的表现形式

多态性在Java中有两个主要的表现形式:

  1. 编译时多态(也称为静态多态)
  2. 运行时多态(也称为动态多态)

编译时多态是通过方法重载(Method Overloading)实现的。这意味着在同一个类中可以定义多个方法,这些方法具有相同的名字但参数列表不同。编译器在编译时根据参数列表来决定调用哪个具体的方法。

编译时多态就是上面所说的多态。

借鉴的老师找的图,这个图可以很好的解释多态,父类Shape里面定义了一个draw()方法,然后Circle、Triangle、Square这三个类都继承了Shape类并重写了它里面的方法,最后通过调用这个方法来实现了不同的效果,这就是多态。

标签:子类,含义,多态,cal,new,父类,方法
From: https://blog.csdn.net/weixin_72280926/article/details/141201265

相关文章

  • 多态
    多态的概念定义:它允许不同的对象对同一操作或方法调用做出响应,但具体的行为会根据对象的实际类型而有所不同。多态性提供了一种方式,使得代码能够以统一的接口与不同的数据类型交互,而不需要关心这些数据类型背后的具体实现细节。多态的好处:提高代码的可读性和可维护性。降低......
  • 多态的机制原理
    多态的机制原理本质上多态分两种1、编译时多态(又称静态多态)2、运行时多态(又称动态多态)多态通常有两种实现方法1、子类继承父类(extends)2、类实现接口(implements)要使用多态,在声明对象时就应该遵循一条法则:声明的总是父类类型或接口类型,创建的是实际类型。例来说,假设我们......
  • [JAVA] 什么是多态?多态的使用和代码实现(超详细版)
    理解多态在JAVA中,多态是面向对象编程的重要特征之一,多态意味着在程序中同一个行为具有多种不同的表现形式。为了更好的理解多态的含义和使用方法,我们可以利用生活中的例子来帮助我们学习比如一些动物们都有跑,跳,吃等等的通用行为能力,不同的动物针对这些行为的表现形式是不同......
  • java继承与多态
    继承与多态一、概念继承继承是面向对象编程中的一个基本概念,它允许我们定义一个类(称为子类或派生类)来继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以复用父类的代码,同时也可以添加自己的特定属性和方法。在Java中,继承是通过extends关键字来实现的。一个类只......
  • 详解C++的四大特性(封装,继承,多态,抽象)
    C++的四大特性是面向对象编程(OOP)的核心概念,分别是封装、继承、多态和抽象。这些特性共同构成了C++作为面向对象编程语言的基础。1.封装(Encapsulation)概念:封装是将数据和操作数据的方法绑定在一起,限制对数据的直接访问。通过将数据隐藏在类内部,只暴露必要的接口(如public成......
  • 接口和多态的区别
    接口和多态的区别区别:概念层面:接口是一种定义行为规范的方式,而多态是这种行为规范在运行时的具体表现。实现机制:接口通过关键字interface来定义,而多态的实现可能涉及到接口的实现、继承和方法重写。目的:接口的目的是为了定义一个共同的规范,使得不同的类可以有统一的调用方......
  • 值类型和引用类型、装箱和拆箱、静态类和普通类、方法的重载、继承和多态
    目录值类型和引用类型的区别?值类型(ValueTypes)定义:特点:示例:引用类型(ReferenceTypes)定义:特点:示例:举例说明:总结:装箱和拆箱装箱(Boxing)特点:示例:拆箱(Unboxing)特点:示例:示例代码:装箱和拆箱的影响最佳实践:静态类和普通类的区别?静态类(StaticClass)普通......
  • Chapter 30 多态
    欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能!文章目录前言一、基本概念二、抽象类前言多态(Polymorphism)是面向对象编程中的核心概念,本章将详细讲解Python中多态的实现方式以及如何应用多态提高代码的可维护性。本篇文章参考:黑马程序员......
  • Java 多态、抽象
    多态的概念和实现多态:一个事物在不同状态下的多种状态举例:学生是人,教师是人,医生是人。(人在不同职业下的不同状态)汽态的水,液态的水,固态的水。(水在不同状态下的不同状态)实现多态的前提:1、必须要有继承关系2、需要有方法的重写(不是必须要重写,但是重写可以体现子类的专......
  • OS-Ubuntu-系统版本信息查询及含义与源配置
    OS-Ubuntu-系统版本信息查询及含义与源配置引用https://blog.csdn.net/ix_fly/article/details/138271843指令lsb_release-aDemo:lsb_release-aDistributorID: UbuntuDescription: Ubuntu22.04.4LTSRelease: 22.04Codename: jammyUbuntu不同版本代号ver......