栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

默认变量的值与默认情况下的初始化

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

默认变量的值与默认情况下的初始化

不,它们不相等。默认值在对象实例化时 立即 分配。当调用超类构造函数时,将在字段初始化程序中进行赋值……这意味着在某些情况下您
发现有所不同。样例代码:

class Superclass {    public Superclass() {        someMethod();    }    void someMethod() {}}class Subclass extends Superclass {    private int explicit = 0;    private int implicit;    public Subclass() {        System.out.println("explicit: " + explicit);        System.out.println("implicit: " + implicit);    }    @Override void someMethod() {        explicit = 5;        implicit = 5;    }}public class Test {    public static void main(String[] args) {        new Subclass();    }}

输出:

explicit: 0implicit: 5

在这里,您可以看到

explicit
Superclass
构造函数完成之后但在子类构造函数 执行之前,显式字段初始化将值重置为0
。的价值
implicit
仍然具有多态调用中指定的值
someMethod
Superclass
构造。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号