
正文
java父类初始化代码 java 父子类初始化顺序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问Java能不能直接用子类初始化父类?
首先子类父类的继承性问题是类之间的关系,而初始化是对象的问题(当然类也能初始化,但是这种初始化无关于子类父类,这也不牵扯到你问的问题)。
super,超类,即父类。当你实例化一个子类的时候,编译器会自动查找子类的父类,并先将父类初始化。当你的子类使用带参数的构造函数时,你必须保证该子类的父类也有相同的带参数的构造器。
是的,java 可以自动子类转换成父类(称为向上转换),子类独有的方法和属性会隐藏。
可以,但必须满足一个条件,向下转型时必须知道当前对象是子类的对象。
因为隐式调用,所以看不到。但是是存在的。如果你显式的调用那么必须放在第一行。而且从理论上来说,既然你要初始化子类,子类会继承父类的一部分属性和方法,如果你不初始化父类,那么子类岂不是没有意义。
相关问答
Q1: 在Java中,有如下代码,
在Java语言中,通常的方法都会涉及到对具体对象的操作,这些方法在调用时,需要隐式的传递对象的引用this,而有一些方法不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,这时此方法需要由static修饰为静态方法。
在Java中,下面代码包含四条语句:int i;:声明一个int类型的变量i。i = 123;:将变量i赋值为123。int j = 0, k = 0;:声明两个int类型的变量j和k,并将它们的初始值都设置为0。
Java中 byte数据类型占有 8-bit 取值范围最大值 :-128最小值:+127 所以A答案是正确的。字符d ASII码的对整型值是100;所以C正确。其他答案在编译时候都会产生损失精度的错误提示。搂主可以试试看。
按照先前的规则,子类要初始化需先初始化父类。
Q2: 当java父类和子类都有构造函数时,求子类对象初始化过程详解
new的作用是为对象a分配内存并将a的来自S的字段x和来自A的字段x都初始化为默认值0。A()的作用是调用类A的构造器。
子类的初始化规则是从父到子,先初始化属性值,再执行构造函数,你这里因为父类没有age属性,所以,基本就是直接将18赋给age。建议你把这段代码使用单步调试跟踪一下,就知道执行步骤了。
那么如果一个子类继承了一个父类,父类具有参数构造函数,那么子类有责任将参数传递给父类,以便父类初始化。
super,超类,即父类。当你实例化一个子类的时候,编译器会自动查找子类的父类,并先将父类初始化。当你的子类使用带参数的构造函数时,你必须保证该子类的父类也有相同的带参数的构造器。
一般来说,子类的构造函数里面会隐式的调用父类的构造函数,就是那个super.什么什么的 因为隐式调用,所以看不到。但是是存在的。如果你显式的调用那么必须放在第一行。
关于java父类初始化代码和java 父子类初始化顺序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







