首页 > 其他分享 >继承中成员变量的访问特点和区分子类方法中重名的三种变量

继承中成员变量的访问特点和区分子类方法中重名的三种变量

时间:2022-08-29 10:37:48浏览次数:62  
标签:变量 重名 子类 System num 三种 println public out

继承中成员变量的访问特点

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

直接通过子类对象访问成员变量:

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

间接通过成员方法访问成员变量:

  该方法属于谁,就优先用谁,没有则向上找。

案例:

父类:

public class Fu {
int numFu =10;
int num =100;
public void methodFu(){
//使用的是本类当中的,不会向下找子类
System.out.println(num);
}
}

子类:

public class Zi extends Fu{
int numZi =20;
int num =200;
public void methodZi(){
System.out.println(num);
}
}  

测试类:

public static void main(String[] args) {
//创建父类对象
Fu fu = new Fu();
//只能使用父类的东西,没有任何子类的内容
System.out.println(fu.numFu);
//创建子类对象
Zi zi = new Zi();
System.out.println(zi.numZi);//20
System.out.println(zi.numFu);//10

//等号左边是谁就优先用谁(优先用子类)
System.out.println(zi.num);//200

zi.methodZi();//200
zi.methodFu();//100
}

区分子类方法中重名的三种变量

局部变量:    直接写成员变量名

本类的成员变量: this.成员变量名

父类的成员变量: super.成员变量名

案例:

父类:

public class Fu {
int num =10;
}

子类:

public class Zi extends Fu{
int num =20;
public void method(){
int num =100;
System.out.println(num);//100 局部变量
System.out.println(this.num);//20 本类的成员变量
System.out.println(super.num);//10 父类的成员变量
}
}

测试类:

public static void main(String[] args) {
Zi zi = new Zi();
zi.method();
}

 

标签:变量,重名,子类,System,num,三种,println,public,out
From: https://www.cnblogs.com/shenziyi/p/16634827.html

相关文章

  • 为什么在Javascript中声明之前可以访问变量?
    为什么在Javascript中声明之前可以访问变量?毫无疑问,当今最常用和最著名的语言之一是JavaScript,如今它无处不在,我们可以创建Web应用程序和系统,在后端开发API并创建移......
  • rh358 002 fact变量获取 ansible配置网络 service_facts
    通过ansible获取网络信息1.如何获取fact事实变量方式1:ansibleservera-mservera方式2:剧本[root@workstationansible]#catake.yaml----name:getallfac......
  • 初识变量
    1.变量在编程语言中,为了方便操作内存特定位置的数据,我们用一个特定的名字与位于特定位置的内存块绑定在一起,这个名字被称为变量。但这并不代表我们可以通过变量随意引用......
  • 变量的声明
    packagemain/*四种变量的声明方式*/import("fmt")//声明全局变量方法一、方法二、方法三是可以的vargAint=100vargB=200//用方法四来声明......
  • 【Java学习Day08】数据类型、变量及字节
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用弱类型语言要求变量的使用要符合规定,所有变量都必须先定义后才能使用Java......
  • 简单动态变量文本模板
    TemplateUtils工具类importlombok.experimental.UtilityClass;importorg.springframework.cglib.beans.BeanMap;importjava.util.*;importjava.util.regex.Matche......
  • Flask 学习-21. 项目配置通过.env环境变量启动开发/生产环境
    前言一般一个项目会配置多套环境:开发/测试/生产环境,每套环境的配置不一样,比如不同的运行环境配置的数据库不一样。config配置在前面的配置管理中https://www.cnblogs.co......
  • Spring @Autowired 注解静态变量
    最近应该项目的需要,需要使用一个工具类来访问数据库。但是这个工具类又被定义成静态访问了。我们也需要设置一个静态变量来访问数据库。@Autowiredprivatesta......
  • 变量
    1.什么是变量变量是指可以变化的量,量指的是事物的状态,比如年龄,金钱、身高等等2.为什么要有变量为了能够让计算机像人一样记忆某一种事物的状态,并且这个状态是可以发生变......
  • ASP中把数据导出为Excel的三种方法
     方法一:用excel组件这种方法利用Excel组件直接导出excel文件,要求服务器端安装有微软office(Excel)程序,否则无法运行。完整示例如下:Setconn=server.CreateObject("adod......