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.成员方法
可以有抽象方法:限定子类必须完成某些动作
也可以有非抽象方法:提高代码复用性

posted @   NeverLateThanBetter  阅读(41)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示