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
{
    //隐藏了父类中的实例变量a
public 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的构造器。

最新文章

  1. 1 background(复合属性)与font(复合属性) 2 行内块的间距问题 3 行内元素的margin 4 清除浮动 5定位的元素的层级 6 Border-radius: 边框半径
  2. 详解AsyncTask的使用
  3. 用Merge来改写相关更新的例子
  4. poj 2236:Wireless Network(并查集,提高题)
  5. 加载gif动态图的三种方式
  6. 基于Httpfs访问HDFS的C++实现
  7. 如何安装SQL Server 2008数据库(带完整图解)
  8. centos exfat格式U盘不支持问题
  9. github控件地址
  10. CCF2014123集合竞价(C语言版)
  11. 查找->动态查找表->键树(无代码)
  12. [原][osg]osg文件与osgb文件的区别
  13. [UE4]把枪打飞addImpulse
  14. SpringBoot添加对jsp的支持
  15. property相关参数介绍
  16. HTML 和 JavaScript 编写简单的 404 界面
  17. PHP CURL 伪造IP和来路
  18. windows下安装并使用redis
  19. javascript在IE下不能用 trim函数解决方法
  20. jquery prop attr

热门文章

  1. Struts2 + Hibernate3.3 开发简单的登录注册功能【J2EE】
  2. 【kubernetes】ubuntu14.04 64位 搭建kubernetes过程
  3. 【BZOJ 1049】 1049: [HAOI2006]数字序列 (LIS+动态规划)
  4. jquery checkbox用法汇总
  5. JZYZOJ1539[haoi2015]T2 树链剖分
  6. 【树形dp】Codeforces Round #405 (rated, Div. 1, based on VK Cup 2017 Round 1) B. Bear and Tree Jumps
  7. bzoj 3728: PA2014Final Zarowki
  8. [转]oracle 数据库、表空间、实例、服务之间的关系
  9. centos6.5编译安装nginx
  10. C# 获取文件版本