5.6.3 super限定
来源:互联网 发布:民国报刊数据库 编辑:程序博客网 时间:2024/05/22 07:42
super用于限定该对象调用它从父类继承得到的实例变量或方法,正如this不能出现在static修饰的方法中一样,super也不能出现在static修饰的方法一样。
package chap5_6;class BaseClass{ public int a=5;}public class SubClass extends BaseClass { public int a=7; public void accessOwner() { System.out.println(a); } public void accessBase() { System.out.println(super.a); } public static void main(String[] args) { // TODO Auto-generated method stub SubClass sc=new SubClass(); sc.accessOwner(); sc.accessBase(); }}
运行结果
75
实际上系统会为SubClass对象分配两块内存,一块用于存储在SubClass类中定义的a实例变量,一块用于存储从BassClass类继承得到的a实例变量。
如果在某个方法中访问名为a的成员变量,但没有显式指定调用者,则系统查找a的顺序为:
1查找该方法中是否有名为a的局部变量
2.查找当前类中是否包含名为a的成员变量
3.查找a的直接父类中是否包含名为a的成员变量。
因此系统在创建子类对象时,依然会为父类中定义的、被隐藏的变量分配内存空间。
package chap5_6;class Parent{ public String tag="疯狂Java";}class Derived extends Parent{ private String tag="轻量级Java";}public class HideTest { public static void main(String[] args) { // TODO Auto-generated method stub Derived d=new Derived(); // System.out.println(d.tag); System.out.println(((Parent)d).tag); }}
运行结果
疯狂Java
程序先将d变量强制向上转型为Parent类型,再通过它来访问tag实例变量是允许的。
0 0
- 5.6.3 super限定
- super限定
- 继承-super限定
- Java中的super限定
- Java中的super限定
- java中的super限定
- 继承中的super限定
- 方法重写与super限定
- 黑马程序员_重写父类/super限定
- Java菜鸟学习笔记--面向对象篇(九):Oerride与super限定
- Java中super的限定作用和引用变量的强制类型转换
- 黑马程序员_java对泛型的限定: <? extends E > , < ? super E > 的理解和体会。
- java 泛型之 通配符的限定 之 super 的实例
- 2.5 限定符(3)
- 3、this与super
- python2/3 super
- super
- super
- Java NullPointerException原因知多少
- 百度贴吧爬虫【练手】
- AT&T汇编语言语法
- Hadoopo——删除文件
- 详解JNDI的lookup资源引用 java:/comp/env
- 5.6.3 super限定
- 黑马程序员——小白入门之Java概述
- SharePoint 2013的限制(二)网站集和列表/文档库
- IOS SWIFT基本画图教程
- P51 15
- 网络编程:Reactor与Proactor的概念
- JNDI之java:comp/env
- 第二十一题
- Hadoop——判断hdfs上文件是否存在