super的用法:

(1)如果需要在子类中调用父类中被覆盖的实例方法,可以用super限定来调用父类中被覆盖的方法。当然,也可以调用从父类继承的实例变量。

public void callOverridedMethod()
{super.fly();//fly()是父类中被覆盖的方法
}

 注:super限定用于限定该对象调用它从父类继承的实例变量或者方法,但是super不能出现在static修饰的方法中,因为,static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是一个对象,因此super限定也就失去了意义。?不明白什么意思,从书上看到的,求高手指教!谢谢!

(2)如果在构造器中使用super,则super用于限定该构造器初始化的是该对象从父类继承得到的实例变量,而不是该类自己定义的实例变量。

public class BaseClass
{public int a=10;
}public class SupClass extends BaseClass
{    //隐藏了父类中的实例变量apublic int a=1;public SupClass(){      //在构造器中使用super,可以访问父类中被隐藏的实例变量super.a=100;//这里初始化的是BassClass中的实例变量的值}
}     

(3)在一个构造器中调用另一个重载的构造器使用this来完成。

public class Person
{    private String name;    private int age;public Person(String name){this.name=name;}public Person(String name,int age){this(name);//调用重载的构造器 , public Person(String name) this.age=age;     }
}

在子类构造器中调用父类的构造器,使用super来完成。

class Person
{    private String name;    private int age;public Person(String name,int age){
      this.name=name;
      this.age=age;     }
}

public class ChinesePerpon{    private String skin;    public ChinesePerson(String name,int age,String skin)    {      super(name,age);      this.skin-skin;    }}

注:代码是手写的,出错很多,谅解!

  super和this很像。super调用的是父类的构造器(在子类构造器的第一行),而this调用的是同一个类中重载的构造器(在该类构造器的第一行,由于位置的约束,导致this和super不能同时出现)。

  构造器的调用总是从最高父类开始的,最后才是该类的构造器。上面的代码中先是调用Person的构造器,在调用ChinesePerson的构造器。

java中的super限定相关推荐

  1. java super父类的父类_合理使用父类的财富——Java中的super

    Java中的继承让类之间有了父子关系.子类可以继承父类开放给自己的变量.方法等等. 在子类可以直接使用父类的这些变量或者方法等等. 就像下面图1的代码这样. 图1 这段代码中在子类对象可以直接使用父类 ...

  2. [Java]中[this][super]用法总结

    this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...

  3. Java中<? super T>和List<? extends T>的区别

    Java中<? super T>和List<? extends T>的区别 <? extends T> 下面通配符声明List<? extends Numbe ...

  4. java中this,super,extends,implements相关继承概念讲解

    在java中有关==继承==这个词有许多关键字:super,this,extends,implements      对于初学者来说着实比较晕,网上说的也是云里雾里.现在个人算是有些眉目了,来一次总结 ...

  5. java中的super和this_在Java中super和this的区别

    摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解: 1.this的用法在Java ...

  6. java中的super关键字

    原文 一.定义 它是一个指代变量,用于在子类中指代父类对象. 二.应用 2.1 应用范围 只能用于子类的构造函数和实例方法中,不能用于子类的类(静态)方法中.原因是super指代的是一个父类的对象,它 ...

  7. java 中的 super

    super super是啥? 我第一次看见这个词首先想到的是superman~~ 超人. superstar. 超级巨星. 翻译过来就是"超". 所谓超人. 就是比人牛B那么一点点 ...

  8. java中的全限定类名和非限定类名是什么意思?

    全限定类名是指带包名的类名:(如java.lang.String) 非限定类名是不带包名的类名.(如String)

  9. java中的super()是什么

    要说super就先要说this. "this",作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个 ...

最新文章

  1. 让delphi程序不受WINDOWS日期格式的影响
  2. kettle 使用java版本_Kettle最新版本8.X详解
  3. 3DSlicer18:Layouts
  4. Android控件捕获点击事件的范围
  5. res.status === 200含义
  6. JAVA发送邮件工具包_java mail 发送邮件工具包
  7. 力扣——字符串转换整数(atoi)
  8. C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)
  9. (译)SDL.NET Surfaces 相关介绍
  10. GridView 设置背景透明以及Item的点击动画
  11. C#基础知识四之override和new的区别
  12. 串口转WIFI的工作方式理解
  13. 验证码图片生成和验证
  14. 叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应
  15. centos 6.3_x64编译7.4 LFS
  16. Matlab中meshgrid的用法
  17. SYN 洪水攻击如何工作?
  18. OAI搭建——硬件准备
  19. 有限状态机 FSM——Finite State Machine
  20. aix oracle扩容裸lv,aix下扩展lv注意事项

热门文章

  1. 在Powerpoint中插入Flash的方法
  2. 云上护航服务—保障云上的尖峰时刻
  3. 三、Java基础工具(1)_常用类——随机数
  4. LinkedList 实现 Queue
  5. iOS 多线程 自动释放池常见面试题代码
  6. 测试机型不够?把玩家反馈过的问题机型,都测个遍
  7. Stimulsoft Reports.Net基础教程(十):创建图表报表②
  8. JAVA WEB新进展
  9. 自定义View实现图片的绘制、旋转、缩放
  10. oracle11g程序调优纪实