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的构造器。

java中的super限定的更多相关文章

  1. java中关键字super

    super关键字的作用 java中的super关键字是一个引用变量,用于引用父类对象.关键字“super”以继承的概念出现在类中. 主要用于以下情况:1.调用父类的方法   2.调用父类的变量  3. ...

  2. Java中的super与this解析

    好了,现在开始讨论this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象 ...

  3. Java中关键字super与this的区别

    一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引 ...

  4. 总结java中的super和this关键字

    知识点: 在java类中使用super引用父类的成分,用this引用当前对象 this可以修饰属性.构造器.方法 super可以修饰属性.构造器.方法 关于子类实例化过程中的内存分配,在下一篇博客中说 ...

  5. JAVA中的super和this关键字的使用

    一 this关键字 this关键字可以出现在构造方法和实例方法中,不能出现在静态方法中,这是因为静态方法可以用类名来调用,这时可能还没有任何对象诞生. this主要有两种用法: 1 用在构造方法中,调 ...

  6. Java 中 泛型的限定

         泛型 一般 出如今集合中,迭代器中 也会出现!      泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们经常使用的容器中.  越是 单一 约优点理啊!       ...

  7. Java中的super()使用注意

    1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)3)super: 它引用当前对象的 ...

  8. Java中的 super和this

    super关键字 在子类中用于表示父类对象的引用,可以在子类中调用父类中的方法的属性. super语句 --- 子类在继承父类之后,子类的构造方法中会含有一个super语句. 如果没有手动指定supe ...

  9. java中static,super,final关键字辨析

    1:static关键字 利:1)对对象的共享数据提供单独的空间存储. 2)修饰的方法可以直接被类名调用 弊:1)生命周期长. 2)访问出现限制(只能访问静态) 它可以有静态方法,静态类,静态变量 2: ...

随机推荐

  1. Codeforces 1131 B. Draw!-暴力 (Codeforces Round #541 (Div. 2))

    B. Draw! time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  2. Hibernate 与Spring整合出现 hibernate.HibernateException: createCriteria is not valid without active transaction

    当 Hibernate 和 Spring 整合时,在 Spring 中指定的 Hibernate.cfg.xml 文件内容中要注释掉以下内容: <!-- Enable Hibernate's a ...

  3. Why Did the Cow Cross the Road III(树状数组)

    Why Did the Cow Cross the Road III 时间限制: 1 Sec  内存限制: 128 MB提交: 65  解决: 28[提交][状态][讨论版] 题目描述 The lay ...

  4. Visual Studio Xamarin提示Bonjour backend初始化失败

    Visual Studio Xamarin提示Bonjour backend初始化失败 错误信息:The Bonjour backend failed to initialize, automatic ...

  5. [Codeforces 1053B] Vasya and Good Sequences

    Link: Codeforces 1053B 传送门 Solution: 其实就是暴力 观察需要满足的条件: 1.个数和为偶数 2.最大个数不大于其它所有个数的和 如果只有第一个条件记录前缀和的奇偶性 ...

  6. DZY Loves Chinese / DZY Loves Chinese II

    题面在这里! 这两个其实是一个题啦..双倍经验加成23333 可以很简单的发现如果把一条树边和所有覆盖它的非树边都删去的话,那么图会不连通: 如果再手玩一下可以发现,如果把两个被非树边覆盖的集合相同的 ...

  7. 【最小割】【Dinic】Gym - 101128F - Landscaping

    http://blog.csdn.net/lxy767087094/article/details/68942422 #include<cstdio> #include<cstrin ...

  8. 分页器与form表单

    分页器 分页器对象 from django.core.paginator import Paginator Paginator对象: paginator = Paginator(user_list, ...

  9. 1.3(SQL学习笔记)计算字段及函数

    一.计算字段 1.1拼接字段 一般情况下返回的字段是指定列的属性名.如果有时我们对返回格式有特殊要求. 例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内. prod_name(p ...

  10. C# 高德地图调用帮助类 GaodeHelper

    /// <summary> /// 高德地图调用帮助类 /// 更多详情请参考 高德api /// </summary> public class GaodeHelper { ...