`
ivywjhua
  • 浏览: 21972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java constructor 在构造子类时,一定会调用到父类的构造方法

阅读更多
sub class must call base class's constructor
    sub class will invoke base class's constructor implicityly
    if super constructor  is undefined, must explicitly invoke another constructor

子类以一定要调用到父类方法。
子类可以隐式的调用父类默认的构造方法。
如果父类没有默认构造方法,必须显示调用。


Constructor call must be the first statement in the constructor
    super()   or   this(...)
super和this要在第一个statement,不能被同时调用

default constructor is equivalent to the following code
public ASubClass(){
    super();
}
默认构造函数会调用父类构造方法

if no constructor defined, compiler will create a default one
如果没有默认构造函数,compiler会帮忙生成一个

转载个例子:
class A{
public A(){} // 1:无参数构造方法。
public A(String s){} // 2.
}

class B extends A{
public B(String s){
   super(s); // 3.
}
}


记住一点:在构造子类时,一定会调用到父类的构造方法。因为父类中的元素也需要被初始化。
所以父类要么有一个默认的无参数构造,这样Java会自动调用这个无参数的构造。如果父类没有无参数的构造,那么就要你自己在子类的构造中,通过super()的方式调用父类的构造。
0
0
分享到:
评论

相关推荐

    javaoop考试题,Java中级课程,继承,抽象

    它可以用来调用父类的构造函数或方法,也可以访问父类的属性。 - **错误选项分析**: - B项:`super`关键字只能访问到子类的直接父类及其属性和方法,不能直接访问父类的父类。 ### 6. 异常处理 (Exception ...

    Ext实现java的面向对象实例

    7. **类实例方法重写**:在子类中,可以重写父类的实例方法,以实现不同的功能。在Ext中,你可以直接在子类中定义相同的方法名来实现覆盖。 8. **命名空间别名**:为了方便引用,我们可以为命名空间创建别名。例如...

    超级有影响力霸气的Java面试题大全文档

    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)...

    Java面试宝典.pdf

    当创建一个子类对象时,会首先调用父类的构造器,然后才是子类的构造器。构造器可以有访问修饰符,用于控制类外对构造器的访问级别。 break、continue和return语句在Java中都用于控制循环和方法的流程。break语句...

    34个java问题.pdf

    在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是? 目的主要是为了确保父类的初始化逻辑得以执行,保证子类能够继承父类的特性。 #### 26. == 与 equals (重要) - `==`:比较两个对象的引用是否...

    java面试800题

    1.调用超类的构造方法; 2.由初始化语句对给变量进行初始化; 3.执行构造方法的体。" Q0055 系统运行时的最小单位是什么? 线程 Q0056 Java的编码规范? Q0057 Java的命名规范? Q0058 一个Java抽象类声明了一个...

    JAVA程序员面试32问.pdf,这是一份不错的文件

    - finalize:对象被垃圾收集器回收前调用的清理方法,通常用于释放非内存资源,但不保证一定会执行。 2. AnonymousInnerClass(匿名内部类): - 可以实现接口,但不能直接继承其他类,除非接口中没有定义方法,...

    四套详细的java训练题答案

    10. **反射机制**:Java反射机制允许程序在运行时动态获取类的信息并调用其方法,训练题可能涉及Class类、Constructor、Method、Field等对象的使用。 11. **泛型**:泛型提高了代码的类型安全性和重用性,训练题会...

    java面试宝典 吐血推荐,很全面

    - **注意事项**: 在比较对象时,如果对象重写了`equals`方法,则`equals`将根据重写的逻辑来比较对象。 **12. 静态变量和实例变量的区别?** - **知识点**: 静态变量属于类级别,所有对象共享一份副本;实例变量...

    Java基础阶段复习题2(附标准答案).docx

    - constructor在创建对象时执行,即使用`new`关键字时。所以选项C是正确的。 - 一个类可以定义多个构造器,只要它们的参数列表不同,这就是构造器重载。所以选项D也是错误的。 3. 语法表达式合法性: - 选项A:`...

    Java面试题目大全2018版

    但子类可以定义与父类同名的构造器,这被称为构造器的重载。 20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类中可以有静态的`main`方法,但不能运行,因为静态方法不会创建任何对象。 21. ...

    JAVA面试题附答案,祝你面试顺利

    - **题目解析**: 构造方法没有返回类型,并且当创建一个新对象时会被调用,因此正确答案是`C: constructor在一个对象被new时执行`。 #### 11. 检查型异常 - **知识点**: 检查型异常是在编译阶段就必须处理的异常,...

    3.面向对象编程_选择题[参考].pdf

    9. 显示调用父类型的构造方法是通过在子类构造方法中使用`super()`来完成的,这使得子类实例化时能初始化父类的成员。 10. 正确的说法是:C(JAVA 中只有单继承)。JAVA不支持多继承,但可以通过接口实现类似的功能...

    java判断试题.pdf

    子类可以通过 `super()` 显式调用父类的构造函数。 --- #### 19. `session` 的结束方式 **知识点**: 结束 `session` 的几种方式。 **解析**: 正确。结束 `session` 的主要方式包括关闭浏览器、两次访问之间的...

    Java面试宝典。北大青鸟

    19. 构造器(Constructor)不能被覆盖,因为构造器不具备继承性,但子类可以定义与父类同名的构造器来实现类似的效果。 这些是Java面试中可能会遇到的一些基础问题,通过深入理解和实践,求职者可以更好地应对面试...

    从初面到终面:JAVA面试系列之java基础面试题及答案

    27. **创建包含可变对象的不可变对象**:可以,但需要确保可变对象在构造期间不会被修改。 28. **值传递与引用传递**:Java总是进行值传递,对于基本类型传递的是值副本,对于对象则是对象引用的副本。 29. **==与...

    java面试题大集合

    在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类构造方法的第一行。 - **this()**:用于调用同一类中的其他构造方法。在一个类的构造方法中,如果要调用该类中...

    Java面试宝典2013版

    Java中实现多态的机制主要通过继承和接口实现,允许子类重写父类的方法,或者实现接口中的方法。 #### abstract class和interface的区别 `abstract class`可以有构造器、实例变量和方法实现,而`interface`不能有...

    Java程序员面试宝典(完整版)

    13. 不可以在`static`方法内部直接调用非`static`方法,因为`static`方法在无对象实例的情况下即可调用,而非`static`方法需要对象实例才能调用。 14. `Integer`与`int`的主要区别在于`Integer`是对象,`int`是基本...

Global site tag (gtag.js) - Google Analytics