子类对象构造时,首先要构造父类的对象,此时需要调用父类的构造方法。
1、如果父类有默认的构造方法,构造是没有问题的
public class D {
private int i;
public D(){}
}
或
public class D {
private int i;
}
public class E extends D {
private int j;
public E(int j) {
System.out.println("class E constructing...");
this.j = j;
}
public static void main(String[] args){
new E(2);
System.out.println("OK!");
}
}
结果
class E constructing...
OK!
2、如果父类没有默认构造方法,子类只能在自己的每一个构造方法的第一句调用父类的某一个构造方法来构造父类对象。
// D.java
public class D {
private int i;
{System.out.println("class D initializing...");}
public D(int i) {
System.out.println("class Di constructing...");
this.i = i;
}
public D(String s){
System.out.println("class Ds constructing...");
}
}
// E.java
public class E extends D {
private int j;
{System.out.println("class E initializing...");}
public E(int j) {
super(j);
System.out.println("class Ei constructing...");
this.j = j;
}
public E(String s){
super(s);
System.out.println("class Es constructing...");
}
//public E(int i, int j){} 这样是不行的,VM不知道该如何构造D的对象
public static void main(String[] args){
new E(2);
System.out.println();
new E("str");
System.out.println("OK!");
}
}
输出:
class D initialization...
class Di constructing...
class E initialization...
class Ei constructing...
class D initialization...
class Ds constructing...
class E initialization...
class Es constructing...
OK!
分享到:
相关推荐
java训练题目 编写程序实现子类对父类构造方法的引用?
Java 中的继承(子类调用父类构造方法还不懂) Java 中的继承是指一个类可以继承另一个类的属性和方法,这样可以实现代码的复用和提高开发效率。在 Java 中,继承使用关键字 `extends` 来实现。 Java 中继承的注意...
c#(f_0001)显示调用父类构造方法收集.pdf
但如果父类中没有无参构造方法,或者需要在子类中传递特定参数到父类构造方法,则需要使用`super()`关键字显式调用父类的构造方法。 #### 六、构造方法调用的顺序 在类的继承结构中,构造方法的调用顺序遵循自底...
2. **使用未绑定方法调用父类构造方法** 在Python中,我们可以直接访问类的方法,它们是未绑定方法。在`ZileiFun`类的`__init__`方法中,可以看到`FuleiFun.__init__(self, num)`的调用。这种方式直接使用父类`...
本篇文章介绍了,Java中子类调用父类构造方法的问题分析。需要的朋友参考下
### Python子类继承父类构造函数详解 在Python面向对象编程中,继承是一个非常重要的概念。通过继承,一个类(称为子类)可以从另一个类(称为父类或基类)继承属性和方法。继承不仅可以提高代码的复用性,还可以...
这是因为在这种情况下,没有默认的无参构造方法供子类调用,如果不显式指定,编译器无法确定应该调用哪个父类构造方法。因此,显式调用`super`是必要的,以确保父类的正确初始化。 三、父类同时拥有有参和无参构造...
Java的子类调用父类的构造方法.pdf
程序中描述了子类对象构建调用父类的构造方法,以及类变量和实例变量创建的不同过程
// 父类构造方法 } } public class SonClass extends FatherClass { public SonClass() { super(); // 调用父类的构造方法 // 子类构造方法 } } ``` 如果父类有带参数的构造方法,子类在调用时也需要提供...
主要介绍了php实现parent调用父类的构造方法与被覆写的方法,在上一篇关于使用类继承解决代码重复问题的基础上,进一步分析了parent调用父类的构造方法与被覆写的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
5. 父类构造方法的调用:在Java的继承体系中,子类可以通过super()语句来显式调用父类的构造方法。如果子类构造方法的定义中没有显式调用父类的构造方法,则编译器会自动插入一个对父类无参数构造方法的调用。但是,...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
// 调用父类构造方法 this.breed = breed; } } ``` 8. 静态工厂方法与构造方法 除了构造方法外,有时还可以使用静态工厂方法来创建对象。这种方法不涉及构造方法,而是通过类中的静态方法返回一个实例。虽然...
1. **添加默认构造方法**:在父类`SuperClass`中添加一个默认构造方法,这样即使子类不显式调用父类构造方法,也会默认调用该默认构造方法。 ```java class SuperClass { SuperClass() {} SuperClass(String ...
需要完成的任务 ...(1)主题类继承帖子类,并增加属性:主题id、版块id ...(3)帖子类的getInfo ()方法实现多态 (4)使用super关键值调用父类构造方法 2.技能训练 ...(3)会使用super关键字调用父类构造方法
4. 父类构造方法执行完毕后,执行当前类的实例构造方法。 5. 最后,执行当前类的非静态代码块(如果有)。 这个过程确保了对象在被创建之前,其类的静态属性和父类的静态属性已经被正确初始化。同时,通过构造方法...