继承-super限定
来源:互联网 发布:手机淘宝怎么用集分宝 编辑:程序博客网 时间:2024/05/22 01:29
源代码1:
class Experiment1{ public int c=10;}class Experiment2 extends Experiment1{ public int a=5;}public class Java1 extends Experiment2{ public void java1_System(){ System.out.println(a); System.out.println(c); } public static void main(String[] args) { Java1 b=new Java1(); b.java1_System(); } }运行结果:
源代码2:
class Experiment{ public String a="java";}class Experiment2 extends Experiment{ private String a="C++";}public class Java2 { public static void main(String[] args) { Experiment2 b=new Experiment2(); //System.out.println(b.a); System.out.println(((Experiment)b).a); } }
1.super限定的作用是在子类中引用父类中被覆盖的实例方法;
2.super用于限定该对象调用它从父类继承得到的实例变量或方法;与this一样,super不能出现在有static修饰的方法中,因为有static修饰的方法是属于类的,而类一般是直接地由类来引用,而非是由对象,这样就与super的定义相驳了;
3.super关键字只能用于在子类的方法中引用父类被覆盖的实例变量或方法,注意只能在子类的方法中引用,在其他的地方引用都不行;
4.如果在子类定义一个与父类同名的实例变量,则会发生子类实例变量隐藏父类实例变量,注意这里只是隐藏了;
5.如果子类中没有存在与父类相同的实例变量,那么调用父类中的实例变量则无需使用super,检索这个实例变量的顺序为:该方法--->当前类--->父类--->编译报错;
6.由源代码1可得:①.程序不经会为本类中的实例变量创建内存,还会为父类中的实例变量创建内存,而且这个实例变量属于的是本类,该实例变量的值等于父类中实例变量的值;②.一个类虽然只可以有一个直接父类,但是可以有很多个间接父类;
7.由源代码2可得:假若注释的语句作为一个语句放入该源代码中,那么系统会编译错误,因为Experiment2中的b实例变量的修饰符为private,是不能被其他类访问的,假使要在Java2中访问Experiment类中的a,那么只能强行转换实例b的类型;(当然也可以在Experiment2定义一个方法 public void Out(){System.out.println(super.a); }也能实现同样的目的)
- 继承-super限定
- 继承中的super限定
- super限定
- 5.6.3 super限定
- Java中的super限定
- Java中的super限定
- java中的super限定
- super、继承
- 继承、super
- 方法重写与super限定
- 如何限定继承类
- 使用super()继承
- 继承 this与super
- 类 继承 super this
- Python super继承详解
- 继承(包括super关键字)
- 继承与super关键字
- java super继承测试
- Oracle VM + centos7.1+openstack kilo 多结点安装教程---neutron的安装(1)
- css设置段落缩进、行距
- java 中的锁的问题
- 进程调度 以及softirq中定时器会调用的进程调度过程分析
- WebView的基本使用
- 继承-super限定
- 识别条形码
- 将两个有序链表进行合并
- 【记录】sqlite3 命令行操作
- MySQL学习1:初识MySQL
- 面试题--Java线程面试题 Top 50
- Java小程序之显示文件夹结构
- ContentProvider问题
- POJ 3480 John