- 浏览: 107408 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (90)
- JavaSe (22)
- JavaEE (10)
- JavaFrameWork (1)
- Python (7)
- batch (3)
- MsSql/Oracle/MySql (1)
- 服务器 (4)
- Software (1)
- Eclipse (1)
- SWT/JFace (0)
- 版本控制 (1)
- 代码优化与规范 (5)
- 设计 (2)
- 理财 (1)
- 日记 (3)
- 记事薄 (1)
- 转载 (1)
- entertainment (0)
- 算法 (2)
- xml (0)
- 待整理 (0)
- 常用资源整理 (0)
- vbs (2)
- C++ (1)
- Material (5)
- 系统 (2)
- Hibernate (8)
- tools (3)
- 程序员 (1)
- javascript (6)
- 职场 (2)
- 管理 (0)
- struts2 (0)
- EJB (1)
- webserver (2)
- struts (0)
- dwr (1)
- webPageTec (0)
- cas (0)
- 业务 (0)
- 工具 (0)
- 笔记 (0)
- 职业生涯 (0)
最新评论
//父类 super class public class Super { String name = "parent"; public String getName() { return name; } } //子类 public class Son extends Super{ String name = "son"; //重新父类中的方法 public String getName() { return name; } } public class Test { // 父类中的成员变量是否能覆盖呢 public static void main(String[] args) { Super su = new Son(); System.out.println(su.getName()); // son System.out.println(su.name); // parent } }
有上面的例子,我们可以看到,子类重写了(覆盖)父类中的方法 getName。我们用一个上转型的对象来分别调用类中的成员变量和方法,我们发现方法中输出的是子类的结果,而成员变量依旧是父类的结果。
以前我们通常认为:上转型对象无论是成员变量,还是成员方法都是优先访问子类的.
但上面的例子的结果似乎不太符合我们一贯的概念,我们思考一些方法重写的概念,子类中重写了父类一个非私有方法,该方法的参数,方法名,返回值均与父类相同,我们说 子类 重写(覆盖)了父类的方法。
但我们忽略了一条:只有动态方法才有override,静态方法,静态域,动态域都是不会被覆盖的。
简单的理解为,只有动态方法才能被覆盖,所以 su.name 压根就没被子类覆盖,所以它的结果应该是 parent.
发表评论
-
张孝祥Java面试总结
2014-03-25 21:58 1686<!--StartFragment --> 张孝 ... -
JNDI简介
2013-04-16 18:16 1237JNDI(The Java Naming and Dire ... -
注释 常用标签
2013-02-20 12:46 642Java Comment Standard: Functi ... -
文件操作通用方法1
2012-08-17 16:30 0// 共享文件(夹)是否存在 public boolean ... -
propertie resource bundle 待补充
2012-08-15 08:53 02012年8月14日 08:57:04 星期二 Resourc ... -
Dom4J SaxReader
2012-08-06 20:10 02012年8月3日 11:48:49 星期五 Dom4j.Sa ... -
事件处理机制
2012-08-02 18:18 0事件处理机制: NameEvent 类似于一个 Javabe ... -
Model Part Figure Policy
2012-08-02 13:03 02012年7月27日 09:36:03 Mode ... -
记录异常堆栈信息 并打印记录 直接出错的点
2012-07-26 13:12 0package com.huawei.cnd.client.c ... -
记录异常堆栈信息
2012-07-26 13:03 0package com.huawei.ExceptionT; ... -
子类可以复写的方法
2012-07-25 19:01 0子类可以重写的父类的方法 共有的 受保护的 友元的 不可以重 ... -
Swt/Jaface
2012-07-19 17:55 0SWT.EraseItem | PaintItem| Ime ... -
javas
2012-07-18 19:27 0for item in NodeBoardTypeAndNod ... -
列头点击切换排序属性
2012-07-14 12:40 0private static final int ASC = ... -
等腰三角形辐射 算法
2012-07-09 23:02 831public static Point genNext(Poi ... -
动态内部类 与 匿名内部类
2012-07-05 15:19 0动态内部类: 访问外部类的成员: 所有都可以访问 成 ... -
位移运算符
2012-07-05 12:56 0num << n: 有符号 左移 ,当把数字往左移 ... -
swt 操作 clipboard
2012-07-05 12:55 0SWT Operate Clipboard private ... -
2012年7月4日 Map 2则
2012-07-05 12:54 02012年7月4日 15:06:43 子类中有一个 map,且 ... -
update语句
2012-07-05 12:52 02012年6月26日 19:42:45 update ... ...
相关推荐
JAVA中的方法重写与方法重载区别 JAVA 中的方法重写和方法重载是两个重要的概念,在面向对象程序设计语言中尤为重要。方法重写和方法重载都是多态性的体现,但它们之间有着本质的区别。 方法重写(Override)是指...
在编程语言中,方法重载(Overloading)和方法重写(Overriding)是两个非常重要的概念,它们都是实现多态性(Polymorphism)的关键机制。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 方法重载...
(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。 无法以返回值类型作为重载函数的区分标准。 复制代码 /** * 1. 方法重载只可以通过方法名和方法参数来...
1. **参数列表必须不同**:为了实现方法重载,至少需要有一个参数在数量或类型上与其它同名方法不同。 2. **返回类型不作为判断依据**:在进行方法重载时,即使返回类型不同,只要参数列表相同,也不会被认为是重载...
重载与返回值类型无关,它仅根据参数列表来决定调用哪个方法。例如: ```csharp public class MyClass { public void Test(int x, int y) {} public void Test(int x, ref int y) {} public void Test(int x, ...
### Java中的方法重载(Overloading)与方法覆盖(Overriding) #### 方法的重载(Overloading) 在Java中,方法重载允许我们定义多个同名的方法,但这些方法之间必须具备不同的特征来区分它们。这有助于提高代码的...
注意,方法的重载与返回值和访问修饰符没有关系。 方法重载的优点是可以提高代码的复用性和可读性。例如,在 driver 类中,驾驶员可以驾驶汽车、飞机、轮船等不同的交通工具。使用方法重载,可以编写一个 drive ...
Java 方法的定义和方法的重载 Overload Java 方法是 Java 编程语言的基本组成部分之一。方法是解决问题的多行代码的集合,给予一个名字,以便多次使用。方法的定义和方法的重载是 Java 编程语言的基础知识,本文将...
方法重载练习.mp4方法重载练习.mp4
注意:方法的返回值类型不能用来区分重载的方法。这是因为当调用一个方法时,返回值的类型是不显示的。 2、重写 方法的重写是子类对父类的方法进行改造。 方法重写必须满足下列条件。 (1)子类的...
63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java方法重载.zip63.java...
64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载特点.zip64.java方法重载...
65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载练习.zip65.java方法重载...
### Java编程中对象的创建与使用以及方法的重构与重载的区别说明 #### 对象的创建与使用 在Java编程语言中,一切皆基于对象。理解如何创建对象以及如何使用对象是学习Java的基础。 ##### 1. 对象的创建过程 创建...
### Java编程那些事儿55—方法重载和参数传递 #### 方法重载(Overloading) 在Java编程语言中,**方法重载**(Overloading)是一个非常重要的概念,它允许我们定义多个具有相同名称但参数列表不同的方法。这种方法...
对于方法重载,每次调用不同的重载方法,都会在栈上创建一个新的栈帧,每个栈帧对应一个方法的执行上下文。 在分析内存分配时,我们需要关注以下几点: 1. **局部变量**:每个方法内部声明的变量都存储在当前方法...
在编程领域,类继承和方法重载是面向对象编程中的两个关键概念,它们极大地提高了代码的复用性和灵活性。在这个名为"practise"的压缩包文件中,我们可能找到一个关于这两个概念的实际应用示例。 首先,让我们深入...
重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例
Java方法重载是面向对象编程中的一个重要概念,它允许在一个类中定义多个具有相同名称但参数列表不同的方法。这样做的好处在于,通过方法名就可以直观地理解方法的功能,而具体的执行逻辑则由传入的参数类型和数量...
本资源"**C#02方法与方法重载.rar**"提供了学习这些概念的实践示例,通过一个基础的计算器应用来演示。让我们深入探讨一下这两个主题。 **方法**在C#中是一个包含一组指令的代码块,可以被多次调用。它们是程序的...