多态中成员变量的使用特点
多态中成员变量的使用特点
访问成员变量的两种方式:
1.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁 没有则向上找
代码
父类:
public class Fu { int num=10; }
子类:
public class Zi extends Fu { int num=10; }
测试类:
public static void main(String[] args) { Fu f= new Zi(); System.out.println(f.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 Zi zi=(Zi) f; System.out.println(zi.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 }
成员变量:编译看子类,运行看父类
2.间接通过成员方法访问成员变量:看该方法属于谁 优先用谁 没有则向上找
父类:
public class Fu { int num=10; public void num(){ System.out.println(num); } }
子类:
public class Zi extends Fu { int num=20; @Override public void num() { System.out.println(num); } }
测试类:
public class test { public static void main(String[] args) { Fu f= new Zi(); System.out.println(f.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 Zi zi=(Zi) f; System.out.println(zi.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 System.out.println("----------------------"); Fu z=new Zi(); z.num(); } }
成员方法:编译看父类 运行看子类;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本