Java 继承 子父类的成员变量1

本文介绍了Java中继承时,子父类成员变量的加载和初始化过程,以及如何在子类中区分同名变量。在创建子类对象时,会先加载父类并进行初始化,再执行子类构造函数。在访问成员变量时,会首先查找当前类的局部变量,接着是对象的成员变量,最后是父类的成员变量。`this`代表当前对象,`super`用于引用父类的区域。在子类中,使用`this`访问本类变量,使用`super`访问父类同名变量。

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

基础代码:

class Fu{
    int num1=3;
}
class Zi extends Fu{
    int num2=4;
    void show(){
        System.out.println(num1);
        System.out.println(num2);
    }
}
public class extendsBasic {
    public static void main(String[] args){
     Zi z=new Zi();
     z.show();
    }

}

输出:3/4

当子父类中的变量名一致时:

class Fu{
    int num=3;
}
class Zi extends Fu{
    int num=4;
    void show(){
        System.out.println(num);
       // System.out.println(num2);
    }
}
public class extendsBasic {
    public static void main(String[] args){
     Zi z=new Zi();
     z.show();
    }

}

输出:4

运行:

1.main类加载,运行到子类的对象建立,要加载Zi类。因为Zi类后有extends 关键字,所以要先加载父类——类加载完成。创建对象(对象中的变量有两个num )1.执行Zi构造函数——在函数里先执行super();(父类的构造函数进栈,完成父类的显示初始化)2.再执行Zi的构造函数(完成子类的显示初始化)————对象的构造完成

(对象中的值是类的成员变量——成员变量的存在依附于对象的创建)

2.调用show 方法——找num 变量。先在局部找(局部变量)然后在对应的对象中找(成员变量),找不到就再进入父类中

class Fu{
    int num=3;
}
class Zi extends Fu{
   // int num=4;
    void show(){
        System.out.println(this.num);
       // System.out.println(num2);
    }
}
public class extendsBasic {
    public static void main(String[] args){
     Zi z=new Zi();
     z.show();
    }

}

输出:   3

同时访问子类和父类的变量(变量名一致)

class Fu{
    int num=3;
}
class Zi extends Fu{
   int num=4;
    void show(){
        System.out.println(this.num);
       System.out.println(super.num);
    }
}
public class extendsBasic {
    public static void main(String[] args){
     Zi z=new Zi();
     z.show();
    }

}

输出:4 3

关于this / super

this :代表的是当前的对象

super: 代表的是父类的这片区域

可以直接输出this 不能直接输出(this 可以单用,但super 不能单独使用)

本类用this 父类用super

关于子类和父类的成员变量名一致时总结:

成员变量都在子类的对象中

要同时访问子类和父类的这个变量,父类用关键字super 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值