JavaSE基础(19) super,this 关键字

文章详细阐述了在Java编程中,子类对象创建时构造方法的调用顺序以及this和super关键字的使用。this用于访问本类的属性和方法,特别是在继承中区分同名属性。super则用来访问父类的属性和方法,以及调用父类的构造函数。在子类构造方法的第一行,如果没有显示调用父类构造器,则会默认调用父类的无参构造器。
摘要由CSDN通过智能技术生成

子类对象的创建过程:

子类的构造方法中,默认先调用父类的无参构造方法。如果没有显示的调用,那么隐含着super()。

super关键字:

        可以访问父类的属性

        可以访问父类的方法

        指代父类的构造方法, 如果有多个,靠参数来区分。要在第一行。

this关键字:

        作为本类的对象,

        访问本类的属性。如果在继承中,本类没有这个属性,那么再找父类中。

        访问本类的方法

        可以指代本类的构造方法:this()。要在第一行。

public class A {
    int i;
    int j;

    public void testA(){
        System.out.println("i:"+i);
        System.out.println("j:"+j);
    }

    public void fun(){
        System.out.println("父类的fun方法....");
    }
}
//实际开发不建议这么写,
class B extends A{

    int i;//和父类有相同的属性

    public void testB(){
        System.out.println("i:"+super.i);//要想访问父类的属性,那么就用super
        System.out.println("j:"+j);

        //访问父类的fun方法
        super.fun();
    }

    @Override
    public void fun(){
        System.out.println("子类的fun方法....");
    }
}

this和super的对比:

比较点

this

super

访问属性

首先在子类中查找,如果没有就在父类中查找

直接查找父类

访问方法

先在子类中找,如果没有就去父类中查找

直接访问父类中方法

调用构造

调用本类中的其他构造方法

调用父类的构造方法

特殊

指自身的引用

没有概念

this,super关键字,不能出现在static方法中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值