继承(二):super关键字和this关键字的区别

/*
在子父类中,成员的特定体现。
* 1、成员变量
* 2、成员函数
* 3、构造函数
*/

/*
* 当本类的成员和局部变量同名,则用this区分
* 当子父类中的成员变量同名,用super区分父类
*
* this:代表一个本类对象的引用(地址)
* super:代表一个父类空间。
*/
class Fu
{
    int num = 4;
}
class Zi extends Fu//super指向Fu,
{
    int num = 5;

    void show()
    {
        System.out.println(super.num+".."+num);//super.num指向父类中的num,但如果不做特殊声明,则num为子类中的num
    }
}
public class ExtendsDemo2 {


    public static void main(String[] args) {

        Zi z = new Zi();
        z.show();//输出4..5

    }

}

 

同时说明,对于成员函数来说,子对父类也存在着覆盖。

即如果子父类中有函数同名,则调用时先看子类,若子类中有这个函数,则率先执行子类函数操作,若没有,才去父类中查找该函数

posted @ 2016-04-05 12:54  生姜不爱蒜  阅读(216)  评论(0)    收藏  举报