`

JAVA面试题解惑系列(三)——变量(属性)的覆盖

阅读更多
removed.

请到博文下载PDF文件:http://zangweiren.iteye.com/blog/241218
31
3
分享到:
评论
15 楼 zfyyfz 2008-07-17  
我来说一句,方法是按 类型(句柄)去访问的,方法是按对象访问的 ;
14 楼 zm2693450 2008-07-14  
好贴,顶起来
13 楼 hrtc 2008-07-10  
是我看错了SubClass是大写的。
12 楼 hrtc 2008-07-10  
回复:臧圩人
不一样,如果不用标准方法的话就变成静态成员输出是子类的,静态方法输出是父类的,正好和实例的结果相反。见前面回的那个例子。
11 楼 臧圩人 2008-07-10  
回复hrtc:
静态方法跟静态变量、静态常量的情况是一样的。
比较规范的调用静态方法的方式应该是这样:
SubClass.print();
10 楼 hrtc 2008-07-10  
修改了一个例子
class ParentClass {
	public static String staticField = "父类静态变量";

	public final String finalField = "父类常量";

	public static final String staticFinalField = "父类静态常量";
	
	public static void print(){
		System.out.println("父类输出");
	}
}

public class SubClass extends ParentClass {
	public static String staticField = "子类静态变量";

	public final String finalField = "子类常量";

	public static final String staticFinalField = "子类静态常量";

	public static void main(String[] args) {
		ParentClass subClass = new SubClass();
		System.out.println(SubClass.staticField);
		System.out.println(subClass.finalField);
		System.out.println(SubClass.staticFinalField);
		subClass.print();
	}
	
	public static void print(){
		System.out.println("子类输出");
	}
}


运行结果:
子类静态变量
父类常量
子类静态常量
父类输出
9 楼 臧圩人 2008-07-09  
回复zzq230:
的确,在实际编程中我们不会遇到这样的情况,因为所有的变量要么是常量,要么是private访问权限的
8 楼 zzq230 2008-07-09  
感觉这篇文章写得意义不大!
7 楼 臧圩人 2008-07-09  
回复 lishali12345  backbase:
谢谢支持
6 楼 backbase 2008-07-08  
总结的非常到位,学习了,谢谢 !
5 楼 lishali12345 2008-07-07  

一直关注,一直学习!
4 楼 臧圩人 2008-07-05  
回复malk:
是啊,我只是把问题考虑全面了。你说的也正是我通过试验得出的结论(第三个):
引用
friendly、protected和public修饰符并不影响属性的覆盖。
3 楼 vip_mishow 2008-07-05  
讲的很具体呵,不过《Thinking in Java》里有个“转型”的思想,也蛮适合解释这个的……
2 楼 malk 2008-07-05  
不同意,修饰符只是对可见性而言的,和覆盖没什么关系.
1 楼 xo_tobacoo 2008-07-04  
在合适的情况下使用extends,因为它有弱基问题!

相关推荐

    JAVA面试题解惑系列合集

    .8 1.3 JAVA面试题解惑系列(三)——变量(属性)的覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 1.4 JAVA面试题解惑系列(四)——final、finally和finalize的区别 . . . . ...

    臧圩人--JAVA面试题解惑系列合集.pdf

    **1.3 JAVA面试题解惑系列(三)——变量(属性)的覆盖** - **知识点**:讲解Java中变量覆盖(或称为“隐藏”)的概念,即子类中声明与父类相同名称的变量时,子类变量在子类方法中优先访问。 **1.4 JAVA面试题...

    JAVA面试题解惑系列——类的初始化顺序

    总结来说,对于Java面试中常出现的关于类初始化顺序的问题,开发者应当掌握以下几点: 1. 单个类内成员的初始化顺序:静态变量、静态初始化块、变量、初始化块、构造器。 2. 在继承关系中,子类的静态成员会在父类...

    JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    JAVA面试题解惑系列(一)——类的初始化顺序 JAVA 是一门面向对象的编程语言,类的初始化顺序是 JAVA 程序员和 JAVA 工程师面试中一个非常重要的知识点。本文将详细讲解类的初始化顺序,并提供了相关的测试代码,...

    JAVA面试题解惑系列.doc

    《JAVA面试题解惑系列——类的初始化顺序》 在Java编程中,理解类的初始化顺序是面试中常见的考察点,因为它直接关系到程序的执行逻辑。本文将深入探讨类的初始化过程,以及在继承场景下如何理解这个过程。 首先,...

    Java面试题详解,和一些基础知识的深入剖析,个人认为非常棒

    最后,“JAVA面试题解惑系列(十三)——变量(属性)的覆盖”涉及面向对象的特性,子类如何重写父类的方法或属性,以及可见性和访问修饰符的影响。 通过学习这些面试题解惑系列,不仅可以提升Java程序员对语言核心...

    经典JAVA面试题解惑系列合集

    JAVA面试题解惑系列(一)——类的初始化顺序 在Java编程语言中,理解类的初始化顺序是非常重要的,尤其是在涉及继承的情况下。本节将详细介绍类初始化的规则,并通过实例来帮助理解。 ##### 类的初始化顺序规则 ...

    JAVA面试题解惑系列.pdf

    ### Java面试题解惑系列——类的初始化顺序详解 #### 背景介绍 在Java面试过程中,关于类的初始化顺序的问题是常见的考察点之一。此类问题通常涉及到类的加载机制、静态变量与实例变量的区别、初始化块的作用及执行...

    JAVA面试题解惑系列(二)——到底创建了几个String对象-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    JAVA 面试题解惑系列之 String 对象创建机制 本文将深入探讨 JAVA 中 String 对象的创建机制,解答常见的面试题目,并探索 String 对象池的概念和机制。 一、String 对象的创建方式 在 JAVA 中,String 对象可以...

    面试题解惑系列(十)——话说多线程

    【标题】:“面试题解惑系列(十)——话说多线程” 【描述】:本篇文章主要探讨的是Java中的多线程概念及其在面试中常见的问题解析。 【标签】:“面试题解惑系列(十)——话说多线程” 【部分内容】:在Java中,多...

    ‘’JAVA面试题解惑系列.doc

    《JAVA面试题解惑系列——类的初始化顺序》 在Java面试中,关于类的初始化顺序是一个常见的考点。深入理解这一概念,对于成为一名合格的Java开发者至关重要。在Java中,类的初始化顺序遵循一定的规则,这包括静态...

    JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看.pdf

    在面试中,能够清晰地解释这个概念不仅显示了你对Java基础知识的掌握,也体现了你在实际编程中解决问题的能力。所以,对于Java程序员和工程师来说,掌握类的初始化顺序是非常基础且重要的知识点。

    JAVA面试题解惑系列by(zangweiren)

    ### JAVA面试题解惑系列——类的初始化顺序 #### 一、基础知识回顾 在Java编程中,类的初始化顺序是一个非常重要的概念,特别是在面试时,它经常被用来考察面试者对于Java类加载机制的理解程度。类的初始化顺序...

    JAVA面试题解惑系列合集.docx

    ### JAVA面试题解惑系列知识点总结 #### 一、类的初始化顺序 **知识点概述:** 在Java中,类的初始化顺序是一个常见的面试问题。它主要涉及到类成员(包括静态和非静态)的加载和初始化过程。理解这些基础知识有助...

    JAVA面试题解惑系列(六)——字符串(String)杂谈[收集].pdf

    Java中的字符串(String)是编程面试中的热门话题,其特性与操作是面试官常常用来考察候选人基础知识的手段。本文将深入探讨String对象的一些关键知识点。 首先,我们要了解`String`类的`length()`方法。这个方法返回...

Global site tag (gtag.js) - Google Analytics