java多态
多态中的成员访问特点:
A:成员变量
编译看左边,运行看左边。
B:构造方法
创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
C:成员方法
编译看左边,运行看右边。
D:静态方法
编译看左边,运行看左边。
(静态和类相关,算不上重写,所以,访问还是左边的)
由于成员方法存在方法重写,所以它运行看右边。
多态的好处和弊端
多态的好处:提高了程序的扩展性
多态的弊端:不能使用子类的特有功能
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
多态中的转型
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象
up://不能访问子类的特有方法
animal a = new cat();
down://利用强制转换
animal a = new cat();
cat c = (cat)a;
多态转型分析
new出来的方法都在堆内存中储存,然后栈内存的类的对象指向对应堆内存中的地址,可以将父类的对象指向任意new出来的子类的地址,但是,将父类的对象向下转型之后,只能将该对象指向和该类相同对象类的对象。例如:
抽象类的特点
1.抽象类和抽象方法必须使用abstract关键字修饰
public abstract class类名l
public abstract void eat(;
2.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
3.抽象类不能实例化
抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态
4.抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类
抽象类的成员特点
1.成员变量
可以是变量,也可以是常量
2.构造方法
有构造方法,但是不能实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
3.成员方法
可以有抽象方法:限定子类必须完成某些动作
也可以有非抽象方法:提高代码复用性
本文来自博客园,作者:NeverLateThanBetter,转载请注明原文链接:https://www.cnblogs.com/do-it-520/p/13652639.html
韶华易逝,不能虚度年华。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?