`

[原创]java里的变量隐藏、方法覆盖、方法隐藏

    博客分类:
  • java
阅读更多

永久地址:http://justt0.iteye.com/admin/blogs/new

 

变量:变量只会隐藏不能被覆盖,子类的实例变量/静态变量会隐藏父类同名的实例变量/静态变量,注意“/”这个符号,说明总共有4种隐藏方式。

方法:方法有两种方式,被隐藏/覆盖,同名的静态方法被隐藏,同名的实例方法被覆盖,交叉的形式会报错。

父类:

 

package testjava;

public class Father {
	public String name = "father";

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

 子类:

package testjava;

public class Child extends Father{
	public String name = "child";

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 测试类:

package testjava;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Child c = new Child();
		System.out.println(c.name);
		System.out.println(c.getName());
		Father f = c;
		System.out.println(f.name);
		System.out.println(f.getName());
	}

}

总结;

1. 可以通过改变父类/子类变量name的类型(实例变量/static变量)测试变量的隐藏效果。

2. 可以通过改变父类/子类getName()方法的类型(如果方法是static的,需要将方法所属类name变量的类型也该为static),然后你就会发现,同名的static方法子类会隐藏父类的方法,而同名的实例方法子类会覆盖父类的方法,交叉形式的重写行为不会被编译器允许。

 

永久地址:http://justt0.iteye.com/admin/blogs/new

1
4
分享到:
评论

相关推荐

    Java中的方法和变量在继承时的覆盖问题

    变量和方法覆盖和隐藏的不同:一个类的实例无法通过使用全局名或者强制自己转换为父类型,以访问父类中被隐藏的方法,然而强制转换子类为父类型之后,可以访问父类中被隐藏的变量。另外静态方法不能覆盖父类的实例...

    方法和变量在继承时的覆盖和隐藏问题

    具体到Java语言,方法覆盖(即方法重写)有一些限制: 1. 子类中的方法签名必须与父类中的被覆盖方法完全一致,包括返回类型(Java 5以后,子类方法的返回类型可以是父类方法返回类型的子类型)。 2. 子类覆盖的方法...

    java环境变量一键设置

    Java环境变量配置 在"系统变量"下进行如下配置: (1)新建->变量名:JAVA_HOME变量值:D:\Java\jdk1.6.0_12(这只是我的JDK安装路径) (2)编辑->变量名:Path在变量值的最前面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\...

    Java成员变量局部变量静态变量成员方法全局方法等概念的区

    在Java编程语言中,了解和区分不同类型的变量和方法是至关重要的。这关系到程序的结构、内存管理和代码的可维护性。以下是关于Java成员变量、局部变量、静态变量以及成员方法和全局方法的基本概念和区别的详细阐述。...

    windows7下java环境变量配置方法.pdf

    Windows 7 下 Java 环境变量配置方法 Java 环境变量配置是 Java 开发的基础配置之一,对于 Windows 7 操作系统来说,正确地配置 Java 环境变量是非常重要的。下面将详细介绍 Windows 7 下 Java 环境变量配置方法。 ...

    安装java环境变量

    需要注意的是,在Linux系统中设置Java环境变量的命令和方法会有所不同,但基本原理相同。在Linux中,可能需要编辑如.bashrc或/etc/profile等文件,然后使用export命令来设置环境变量。无论在哪种操作系统中,设置...

    Java环境变量设置

    ### Java环境变量设置详解 #### 一、Java环境变量的重要性 在计算机系统中,环境变量是一种重要的配置方式,用于指示操作系统或程序如何运行。对于Java开发者来说,正确配置Java环境变量是确保Java程序能够顺利...

    设置Java环境变量

    Java环境变量的设置是每个Java开发者都需要掌握的基本技能。它涉及到三个主要的环境变量:JAVA_HOME、PATH和CLASSPATH,这些变量确保系统能够正确找到Java的安装位置、可执行文件以及类库。以下是对这些环境变量的...

    在Java中实现Oracle变量的绑定方法 .doc

    在Java中实现Oracle变量的绑定方法,主要是为了优化SQL语句的执行效率,减少数据库解析负担,提升系统性能。Oracle数据库在处理SQL语句时,会先进行解析,然后将解析后的SQL语句存储在共享池(Shared Pool)中。如果...

    java环境变量配置

    Java环境变量配置是Java开发和运行的关键步骤,它涉及到JDK的安装路径、类路径(ClassPath)的设定以及Java的执行路径(Path)的指定。本文将详细讲解这两种环境变量配置方法,并针对开发工具Eclipse和服务器软件...

    Java环境变量设置和测试

    本文将深入探讨Java环境变量的设置及其重要性,并提供一些测试方法来验证设置是否正确。 首先,我们关注的是三个主要的Java环境变量:JAVA_HOME、PATH和CLASSPATH。 1. **JAVA_HOME**: - 这个变量指向Java SDK的...

    java环境变量一键配置

    总的来说,理解Java环境变量的含义和配置方法对Java开发者至关重要,而“java环境变量一键配置”提供了快速设置这些变量的途径,极大地提高了工作效率。不过,了解背后的工作原理同样重要,这有助于解决可能出现的...

    自定义添加linux系统java环境变量脚本及安装包

    本资源为二狗自己编写的快速定义java环境变量的脚本,可以帮助你剩下不少时间,操作前建议备份/etc/profile文件:mv /etc/profile{,.bak} 防止脚本问题覆盖掉文件的内容 资源分为脚本和安装包两部分内容,放置在同一...

    java环境变量配置说明

    本文将详细讲解 Java 环境变量配置的必要性、配置方法和配置的目的。 一、Java 环境变量配置的必要性 Java 环境变量配置是指在 Windows 操作系统中设置 Java 相关的环境变量,以便 Java 应用程序能够正确地运行。...

    win7下java环境变量

    本文将详细介绍如何在Win7系统中配置Java环境变量,包括`JAVA_HOME`、`PATH`以及`CLASSPATH`等关键变量的设置方法。 #### 一、Java环境变量概述 1. **JAVA_HOME**: 此环境变量指向Java Development Kit (JDK) 的...

    JAVA环境变量的设置方法

    JAVA环境变量的设置是开发JAVA应用程序的基础步骤之一,它确保了操作系统能够正确识别并调用JAVA的运行环境。本文将详细解析如何在Windows系统中设置JAVA环境变量,以确保JAVA开发环境的正常运行。 ### 一、理解...

    Java环境变量配置方法.txt

    里面有java环境变量配置详细方法

    Java语言中变量和方法的分析及其应用.pdf

    本文通过详细分类说明了变量和方法的概念,并分析了变量和方法在Java程序设计应用过程中的内存分配问题、在继承时的覆盖问题以及静态变量和静态方法的应用问题。同时,本文也给出了部分典型案例,希望能为Java程序...

    java环境变量设置

    通过配置系统变量 PATH,可以让操作系统找到 JDK 目录下的 BIN 文件夹里的命令,例如 JAVA 和 JAVAC 命令。 三、编译和运行 Java 程序 编译和运行 Java 程序是 Java 环境变量设置的重要步骤。通过使用 JAVAC 命令...

Global site tag (gtag.js) - Google Analytics