Java继承中成员变量的访问特点「图文分析」包含继承中重名访问的特点

    科技2022-07-14  121

    首先我们先定义一个父类,名字就叫Fu

    定义父类就是一个普通的类定义

    package com.test.demo02; public class Fu { int numFu = 10; }

     

    接着我们定义一个子类,名字就叫Zi

    定义子类是普通类定义加上继承关键字extends

    package com.test.demo02; public class Zi extends Fu { int numZi =20; }

     

    接下来我们定义一个带有main方法的测试类Demo01ExtendsField,

    在main方法中声明并示例化Fu类

    package com.test.demo02; public class Demo01ExtendsField { public static void main(String[] args) { Fu fu =new Fu();//声明并示例化父类 } }

     

    在创建完Fu对象后,可以通过对象的引用来访问对象所有的成员或方法,具体格式如下:

    对象引用.对象成员 对象引用.对象方法

    直观一点表示:

    new 类名().对象成员 new 类名().对象方法

    或者更加直观一点:

    fu.对象成员 fu.对象方法 //fu是Fu类声明并示例话的对象名称

    我们尝试用调用对象的方法来尝试调用方法,编译器是带有方法或属性的提示的,如图下图

    可以发现并没有子类(Zi)里的成员变量numZi我们完善程序,如下图

    接着声明并实例化Zi类,并尝试调用Zi类的方法,注意这个时候Zi是继承自Fu类的哦,如下图

                    这时候可以发现子类(Zi)继承了父类(Fu)后,可以调用父类里的对象成员

    补全后,如下图

    =============================华丽的分割线================================

    承中重名访问的特点:

    在父子类的成员关系中,如果成员变量重名,则创建子类对象时,访问有方式有二

    直接:直接通过子类对象访问成员变量(对象引用.对象成员)

               等号左边是谁,就优先用谁,没有则向上找

    间接:间接通过成员方法访问成员变量(对象引用.对象方法)

    该方法属于谁,就优先用谁,没有则向上找(继承是前提)

    来3张图体会一下

      

     

     

     

    Processed: 0.010, SQL: 8