java中的super限定

简介: super的用法: (1)如果需要在子类中调用父类中被覆盖的实例方法,可以用super限定来调用父类中被覆盖的方法。当然,也可以调用从父类继承的实例变量。 public void callOverridedMethod() { super.fly();//fly()是父类中被覆盖的方法 }  注:super限定用于限定该对象调用它从父类继承的实例变量或者方法,但是super不能出现在static修饰的方法中,因为,static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是一个对象,因此super限定也就失去了意义。

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月前
|
Java
Java包及访问限定
Java包及访问限定
8 0
|
3月前
|
Java 程序员
类的继承和super,final关键字的使用(JAVA)
类的继承和super,final关键字的使用(JAVA)
28 0
|
4月前
|
Java
Java中的super关键字
Java中的super关键字
20 0
|
9月前
|
Java
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
53 0
|
5月前
|
Java 编译器
java super()方法的作用
java super()方法的作用
|
5月前
|
Java
java super和this
super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种 1.在本类的成员方法中,访问本类的成员变量。 2.在本类的成员方法中,访问本类的另一个成员方法。 3.在本类的构造方法中,访问本类的另一个构造方法。 在第三种用法当中要注意: A.this(...)调用也必须是构造方法的第一个语句,唯一一个。 B.super和this两种构造调用,不能同时使用。
25 0
|
5月前
|
Java
java super和this关键字
super关键字的用法有三种: 1.在子类的成员方法中,访问父类的成员变量。 2.在子类的成员方法中,访问父类的成员方法。 3.在子类的构造方法中,访问父类的构造方法。 super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种 1.在本类的成员方法中,访问本类的成员变量。 2.在本类的成员方法中,访问本类的另一个成员方法。 3.在本类的构造方法中,访问本类的另一个构造方法。 在第三种用法当中要注意: A.this(...)调用也必须是构造方法的第一个语句,唯一一个。 B.super和this两种构造调用,不能同时使用。
20 0
|
6月前
|
数据安全/隐私保护
java------方法的覆盖[重写],super和final关键字
java------方法的覆盖[重写],super和final关键字
|
8月前
|
Java
Java面向对象中(super关键字)的详解
Java面向对象中(super关键字)的详解
33 0
|
9月前
|
Java
java基础 --- super关键字
java基础 --- super关键字
48 0