Java中this和super的用法

本文探讨了在面向对象编程中,子类如何调用父类的方法,特别是重写后的初始化方法。通过具体实例,解释了super关键字的作用及用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        前一段时间面试,面试官问了我一个问题:有一个父类A,类A中有一方法init(),类B继承自类A,并重写了类A的init()方法,问在类B的init()方法中如何调用类A的init()方法。我当时想了半天都没回答上来,第二天早上刚从床上爬起,突然恍然大悟,我那个叫后悔,怎么这么简单的问题自己都没回答上来,就像老婆说的,我该受受打击了,哈哈!所以今天在这里总结一下,所谓温故而知新,以免自己以后再犯这种低级错误!    

一、基础知识

1、super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)

2、this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)

3、super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时)

如:super.变量名
super.成员函数据名(实参)

4、this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

二、应用实例

class Point
{
        private
 int x,y;
    public Point(int x,int y)
    {
        this.x=x; //this它代表当前对象名
        this.y=y;
    }

    public void Draw()
    {
    }

    public Point()
    {
        this(0,0); //this(参数)调用本类中另一种形成的构造函数
    }

}

class Circle extends Point
{
    private int radius;
    public circle(int x0,int y0, int r )
    {
        super(x0,y0); //super(参数)调用基类中的某一个构造函数
        radius=r;
    }

    public void Draw()
    {
        super.Draw(); //super它引用当前对象的直接父类中的成员
        drawCircle();
    }

    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值