首页 > 其他分享 >面向对象三大特征(三)—多态学习笔记

面向对象三大特征(三)—多态学习笔记

时间:2024-08-18 19:27:17浏览次数:12  
标签:类型转换 对象 子类 多态 面向对象 父类 三大 赋值

1.概述

多态是指在继承/实现情况下的一种现象,表现为:对象多态、行为多态。

(1)对象多态:同一个对象(事物),可以以不同形态呈现。

ee8807e098324128a94e6ea6f7671f5a.png

 (2)行为多态:同一行为,有不同表现。

26fc7a27443f48b4811530f762238c7b.png

6b7e1cb0368e451481845ed99dce4d1a.png


 2.多态的前提:

(1)有继承/实现关系

(2)存在父类引用子类对象

(3)存在方法重写

3.注意事项:

多态是对象、行为的多态,Java中的属性(成员变量)不谈多态。

67e7b50074e0452097d217138267b4f3.png

d58717ce887f47e2a9b65ee8276efbee.png

4.使用多态的好处:

(1)在多态形式下,右边对象是解耦合的(可以随时切换其他对象),更便于扩展和维护。

d243ddfd88ea4a48b41df810d1c9b095.png

(2)定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强、更便利。

89b75a0265994840b02b2051f5a05d84.png

 5.多态下存在一个问题:多态下不能使用子类的独有功能。

6.类型转化:

(1)自动类型转换:父类 变量名 = new 子类;

(将子类赋值给父类,小范围的赋值给大范围)

(2)强制类型转换: 子类 变量名 = (子类)父类变量;

(将父类赋值给子类,大范围的赋值给小范围)

①注意:存在继承/实现关系就可以在编译阶段进行强制类型转换,编译阶段不会报错。

但运行时,若发现对象的真实类型与强转后的类型不同,则会报强制类型转换异常(ClassCastException)的错误出来。

7.推荐做法(先判断要强转对象的真实类型):

强转前,Java建议使用instanceof关键字,判断当前对象的真实类型,再强转。

标签:类型转换,对象,子类,多态,面向对象,父类,三大,赋值
From: https://blog.csdn.net/Sophia_Ivy/article/details/141256539

相关文章

  • 值类型和引用类型、装箱和拆箱、静态类和普通类、方法的重载、继承和多态、访问修饰符
    目录一、值类型和引用类型的区别?值类型(ValueTypes)定义:特点:示例:引用类型(ReferenceTypes)定义:特点:示例:举例说明:总结:二、装箱和拆箱装箱(Boxing)特点:示例:拆箱(Unboxing)特点:示例:示例代码:装箱和拆箱的影响最佳实践:三、静态类和普通类的区别?静态类(Static......
  • java:关于多态,继承,接口的好处。
    目录比喻1. 交通工具(Driver)2. 汽车(Car)和自行车(Bicycle)代码示例:思考:为什么不直接CarV=newCar();?1. 多态性2. 代码的灵活性3. 易于扩展4. 减少耦合总结比喻想象一下,你有一个 “交通工具” 的抽象概念(可以是一个接口或类),然后你有不同的具体交通工具,比如......
  • 专业剪辑新选择!2024年TOP榜达芬奇剪辑软件VS三大劲敌的较量
    到了2024年,科技飞快地进步,视频剪辑这一块儿也变了不少。老的剪辑方法一直被刷新,新的软件一个接一个冒出来,像达芬奇剪辑软件这样的,都成了拍视频的人的好伙伴。咱们今天就来聊聊这几款软件有啥神奇的,比比看它们在剪辑速度上谁更厉害!1.福昕视频剪辑武器瞬间转移✈ https://ww......
  • javaSE面向对象
    面向对象思想编程学习面向对象内容的三条主线Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类面向对象的特征:封装、继承、多态、(抽象)其他关键字的使用:this、super、package、import、static、final、interface、abstract等方法(对功能进行封装,实现代码的复用)方......
  • 第三章:Java 面向对象编程(OOP)基础 第一节 类与对象
    1.类的定义与成员变量首先,我们来了解一下类的定义和成员变量。类的定义:类是Java中用于创建对象的模板,它包含了对象的属性和行为。我们可以通过以下语法定义一个类:publicclassPerson{ //成员变量(属性) Stringname; intage;​ //方法(行为) v......
  • java基础--day08面向对象以及键盘录入
    1.类和对象1.1类和对象的理解客观存在的事物皆为对象,所以我们也常常说万物皆对象。类类的理解类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型,类是具有相同属性和行为的一组对象的集合简单理解:类就是对现实事物的一种描述类的组成......
  • Java基础——面向对象编程高级(常见关键字)
    package:用于声明一个类或接口所属的包(即命名空间)语法格式:package顶层包名.子包名OrderController类属于包com.hxzs.order.controller一个源文件只能有一个声明包的package语句package语句作为Java源文件的第一条语句出现。若缺省该语句,则指定为无名包。包名,属于标识符,满......
  • 22. 面向对象之多态
    1.多态1.1概念多态指的是一类事物有多种形态比如动物有多种形态:人、猴、鸭1.2代码示例fromabcimportABC,abstractmethod#对于程序来说,定义一个基类可以有多个子类classAnimal(ABC):@abstractmethoddefrun(self):pass@abstractmethod......
  • 轻松掌握PDF合并三大方法
    PDF文件因其跨平台兼容性和稳定性成为了文档传输与存储的首选格式。然而,面对多个分散的PDF文件,如何高效地合并成一个统一的文档,成为了许多职场人士和学术研究者面临的共同问题。本文将为您介绍三个专业且实用的PDF合并方法,帮助大家轻松搞定这一难题。一:粘贴复制第一个,就很简......
  • JAVA面向对象|(一)Java接口 Interface
    目录一、概述(一)概念(二)特点(三)接口VS类二、使用 (一)类实现接口(二)接口间的多继承 演示(三)标记接口 1.标记接口 定义2.标记接口 作用3.标记接口 应用参考文章:Java接口_w3cschool一、概述(一)概念        Java接口是一种抽象类型,是一系列方法的声明......