java的this、super

来源:互联网 发布:字符数组初始化null 编辑:程序博客网 时间:2024/05/17 23:49

Java提供了一个this关键字,this关键字总是指向调用该方法的对象。this作为对象的默认引用有两种情形。

>构造器中引用该构造器正在初始化的对象。

>在方法中引用调用该方法的对象。

 

 

public class Dog {

    public void jump()

    {

        System.out.println("正在执行jump方法");

    }

//定义一个run()方法,run()方法需要借助jump()方法

    public void run()

    {

        this.jump();

        System.out.println("正在执行jump方法");

    }

 

}

大部分时候,一个方法访问该类中定义的其他方法、成员变量时加不加this前缀的效果是完全一样的。

对static修饰的方法而言,则可以使用类来直接调用该方法,若果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象。所以,static修饰的方法不用使用this引用。

 

Super

Super用于限定该对象调用父类继承得到的实例变量或方法。

//Bird.java

public class Bird {

    public void fly()

    {

        System.out.println("我在天空飞");

       

    }

 

}

 

//Ostrich.java

public class Ostrichextends Bird

{

//重写Bird类的fly()方法

    public void fly()

    {

        System.out.println("我只能在地上奔跑");

    }

    public voidcallOverrideMethod()

    {

//子类方法中通过super显式调用父类被覆盖的实例方法

        super.fly();

    }

}

正如this不能出现在static修饰的方法一样,super也不能出现在static修饰的方法中。Static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象,因而super限定就失去了意义。

0 0
原创粉丝点击