面向对象三大特性-多态性
1.如何理解多态性?
理解:理解为一个事物的多种形态
2.Java中多态性的体现:
子类对象的多态性:父类的引用指向之类的对象。(或子类的对象赋给父类的引用) 比如: Person p2 = new Man();
3.多态的应用:
多态性的应用:虚拟方法调用 在多态的场景下调用方法时,编译时,认为方法是左边声明的父类类型,(即被重写的方法) 在执行时实际执行的是子类重写父类的方法 简称为:编译看左边,运行看右边。
4.多态的前提:
①.要有类的继承关系
②.要有方法的重写
5.多态的适用性:
适用于方法,不适用于属性
6.多态的好处与弊端
6.1弊端:
在多态的场景下,我们创建了子类的对象,也加载了子类特有的属性和方法,但是由于声明为父类的引用, 导致我们没有办法直接调用子类特有的属性和方法。
6.2好处:
极大的减少了代码的冗余,不需要定义多个重载的方法。
举例:
class Account{} class CheckAccount extends Account{ //存在方法的重写 } class SavingAccount extends Account{ //存在方法的重写 } class Customer{ Account account; public void setAccount(Account account){ this.account=account; } }
7.instanceof的使用
/*
-
1.建议在向下转型之前使用instanceof进行判断,避免出现类型转换异常
-
2.格式: a instanceof A :判断对象a是否是类A的实例
-
3.如果a instanceof A 返回true,则
-
a instanceof superA 返回也是true。其中,A是superA的子类
-
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现