java 继承访问成员变量代码实例

yizhihongxing

下面为您详细讲解关于Java继承访问成员变量的完整攻略。

继承的概念

继承是面向对象编程的三大特性之一,其主要作用是扩展已有的类,让子类拥有父类的属性和方法,同时还可以增加和修改子类特有的属性和方法。

访问成员变量的规则

在Java语言中,继承会导致子类拥有父类的非私有成员变量和方法。对于访问成员变量的规则,主要就是看继承的关系:

  1. 子类可以直接访问父类中被继承的成员变量,就像访问自己的成员变量一样。如果父类中的成员变量和子类的成员变量同名,则可以使用super来访问父类的成员变量。示例代码如下:

```java
class Animal {
String name = "Animal";
}

class Dog extends Animal {
void printName() {
System.out.println("Dog name is " + name);
}
}

// 测试代码
Dog dog = new Dog();
dog.printName(); // 输出:Dog name is Animal
```

  1. 如果当前类中没有找到所需的成员变量,则会去父类中查找,如果父类中也找不到,则会去其父类中查找,直到Object类为止。

示例

为了更好的说明访问成员变量的规则,我们来看两个示例:

示例一

class A {
    int x = 10;
}
class B extends A {
    int x = 20;
    void show() {
        System.out.println("x = " + x); // 输出:x = 20
        System.out.println("super.x = " + super.x); // 输出:super.x = 10
    }
}

// 测试代码
B b = new B();
b.show();

在类B中,它与其父类A中都有同名的成员变量x,当调用B对象的show()方法时,变量x表示的是子类中的x,而super.x则表示的是父类中的x

示例二

class A {
    int x = 10;
}
class B extends A {
    void show() {
        System.out.println("x = " + x); // 输出:x = 10
    }
}

// 测试代码
B b = new B();
b.show();

在类B中,它没有定义自己的成员变量x,因此调用B对象的show()方法时,变量x表示的是父类中的x

总结

以上就是Java继承访问成员变量的完整攻略。在使用继承时,需要注意成员变量的访问规则,尤其是同名成员变量的情况,这样才能写出正确且具有可读性的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 继承访问成员变量代码实例 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • javamap遍历、排序 根据value获取key

    javamap遍历、排序 根据value获取key 在Java中,Map是一种非常有用的数据结构,它可以通过键值对的方式存储数据。在实际开发中,Map经常被用于处理各种复杂的数据结构。本文将探讨如何遍历Map,如何按照value值进行排序以及如何通过value获取key。 遍历Map 遍历Map通常有两种方式:使用Iterator和使用foreach。其中,…

    其他 2023年3月29日
    00
  • Win10版本2004 Build19041.423更新补丁KB4568831正式推送

    Win10版本2004 Build19041.423更新补丁KB4568831正式推送攻略 Win10版本2004 Build19041.423更新补丁KB4568831是微软最新推送的补丁,旨在修复一些系统漏洞和提升系统性能。本攻略将详细介绍如何安装和应用该补丁。 步骤一:检查系统版本 首先,确保你的系统版本是Win10版本2004 Build19041.…

    other 2023年8月3日
    00
  • 使用cordova+vue搭建混合app框架

    使用Cordova+Vue搭建混合App框架 什么是混合App? 混合App是利用 WebView 组件在原生应用中运行 HTML、CSS 和 JavaScript 的一种方法。它将 Web 技术和移动设备的本地特性结合起来,使得开发人员能够快速地创建跨平台应用程序。 为什么使用Cordova+Vue? Cordova 是一个开源框架,它提供了一个基于 We…

    其他 2023年3月29日
    00
  • 使用HttpClient实现文件的上传下载方法

    下面我将详细讲解使用HttpClient实现文件上传下载方法的完整攻略。 一、引入HttpClient依赖 在maven中添加HttpClient依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient…

    other 2023年6月27日
    00
  • MySQL数据库grant授权命令

    下面是 MySQL 数据库 grant 授权命令的完整攻略,包括授权命令的语法、使用方法和两个示例说明。 授权命令的语法 MySQL 数据库 grant 授权命令的语法如下: GRANT privileges ON database.table TO ‘user’@’host’ IDENTIFIED BY ‘password’; 其中,privileges …

    other 2023年5月5日
    00
  • cue是什么意思?

    Cue是一种文本文件格式,用于描述多媒体作品中的场景、段落、字幕等元素的时间轴信息。它可以被用作音频和视频制作的脚本文件,并且是一个非常流行的文件格式,尤其在音乐和影视制作领域。 段落和注释 一个cue文件通常由一个或多个段落(通过空行分隔开来)组成,每个段落包含一条指令和一些参数。指令和参数之间使用空格进行分隔。注释可以使用“REM”指令或在“TITLE”…

    其他 2023年4月16日
    00
  • es6-fetch的用法

    ES6 Fetch是一种用于发送HTTP请求的API,它提供了一种更简单、更灵活的方式来处理网络请求。以下是关于ES6 Fetch的详细攻略: ES6 Fetch概述 ES6 Fetch是一种用于发送HTTP请求的API,它提供了一种更简单、更灵活的方式来处理网络请求。ES6 Fetch API基于Promise,可以使用async/await语法进行异步处…

    other 2023年5月8日
    00
  • Asp.net自定义控件之单选、多选控件

    Asp.net自定义控件之单选、多选控件 在ASP.NET中,我们可以使用自定义控件来实现复杂的功能和界面。其中单选和多选控件是非常常用的控件,我们可以通过自定义控件的方式来实现它们的功能。 创建自定义控件 我们可以通过继承WebControl类来创建自定义控件。以下是单选、多选控件的基础结构: public class RadioButtonList : …

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部