1.所有类如果没有构造函数,Java都会提供默认的无参构造函数,该函数什么都不做。
public class Test{
public static void main(String args[]){
Test t = new Test();//默认的无参构造函数
}
}
运行结果:
2.如果类提供了构造函数,无论是否有参,Java都不会提供默认的无参构造函数。
public class Test{
public Test(){System.out.println("无参构造函数");}//(1)无参构造函数
public Test(int x){System.out.println("有参构造函数");}//有参构造函数
public static void main(String args[]){
Test t = new Test();//(1)如果被注释,这行语句就会出错
Test t2 = new Test(2);
}
}
运行结果:
无参构造函数
有参构造函数
注意:如果类仅仅提供了有参的构造函数,那么调用无参构造函数就会出错,无法编译。
3.子类构造函数会默认调用父类的无参构造函数
class Base{
public Base(){System.out.println("父类无参构造函数");}
public Base(int x){System.out.println("父类有参构造函数");}
}
public class Test extends Base{
public Test(){System.out.println("子类无参构造函数");}
//public Test(){super();System.out.println("子类无参构造函数");}
public Test(int x){System.out.println("子类有参构造函数");}
public static void main(String args[]){
Test t = new Test();//(1)
Test t2 = new Test(2);//(2)
}
}
运行结果:
父类无参构造函数
子类无参构造函数
父类无参构造函数
子类有参构造函数
(1)和(2)都会调用Base();
注意:如果父类仅仅提供了有参的构造函数,那么子类的构造函数就会出错。
4.子类使用super()关键字可以指定调用父类哪个构造函数
class Base{
public Base(int x){System.out.println("父类有参构造函数");}
}
public class Test extends Base{
public Test(){super(2);System.out.println("子类无参构造函数");}
public Test(int x){super(x);System.out.println("子类有参构造函数");}
public static void main(String args[]){
Test t = new Test();//(1)
Test t2 = new Test(2);//(2)
}
}
运行结果:
父类有参构造函数
子类无参构造函数
父类有参构造函数
子类有参构造函数
(1)和(2)都会调用父类的有参构造函数。
注意:super()语句必须是构造函数的第一条语句。
分享到:
相关推荐
### Java中的继承(子类调用父类构造方法) #### 一、继承的基本概念 Java是一种支持面向对象编程的语言,其中“继承”是一项核心特性。继承允许创建一个新的类(称为子类或派生类),该类继承了现有类(称为父类...
c#(f_0001)显示调用父类构造方法收集.pdf
Java的子类调用父类的构造方法.pdf
这段代码会先输出“父类构造函数被调用”,然后输出“子类构造函数被调用”。 总结一下,PHP中在子类中调用父类方法主要有以下几点需要注意: 1. 使用`extends`关键字让子类继承父类。 2. 使用`parent::methodName...
标题“学学Python_43类的成员02 调用父类构造函数”指的是在子类中调用父类的初始化方法,以确保子类实例化时,父类的数据成员也能得到正确初始化。描述中提到的文章链接是一个CSDN博客文章,详细介绍了这个问题。 ...
### Python子类继承父类构造函数详解 在Python面向对象编程中,继承是一个非常重要的概念。通过继承,一个类(称为子类)可以从另一个类(称为父类或基类)继承属性和方法。继承不仅可以提高代码的复用性,还可以...
程序中描述了子类对象构建调用父类的构造方法,以及类变量和实例变量创建的不同过程
Java 程序中的构造方法调用 Java 程序设计语言中的构造方法是一个特殊的成员方法,它专门用于创建对象和对所创建的对象进行初始化。正确调用构造方法是我们设计程序的关键所在。构造方法的调用方式有三种:一是在...
本篇文章将深入探讨如何在NDK环境中调用Java的构造方法、父类方法以及处理Java返回的中文字符串可能出现的乱码问题。 首先,让我们了解一下在C/C++中调用Java的方法。这主要依赖于JNI(Java Native Interface)。...
#### 六、构造方法调用的顺序 在类的继承结构中,构造方法的调用顺序遵循自底向上的原则,即从最底层的子类开始,逐级向上调用父类的构造方法,直到到达最顶层的基类(通常是`Object`类)为止。这一过程确保了所有...
本文实例讲述了Python实现...子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造
parent 调用父类的构造方法 要引用一个类而不是对象的方法,可以使用 ::(两个冒号),而不是 ->。 所以, parent::__construct() 以为着调用父类的 __construct() 方法。 修改上篇《使用类继承解决代码重复等问题》...
当一个子类继承自一个父类时,它们之间的构造方法调用有一些特定的规则。这些规则在给定的标题和描述中得到了体现,主要涉及到子类如何调用父类的构造方法,特别是当父类的构造方法有参数时的情况。下面我们将详细...
在本文中,我们将通过一个实例来详细介绍C++类继承之子类调用父类的构造函数的实现方法。 首先,我们定义了一个名为HttpUtil的父类,用于实现HTTP协议的网络请求。这个类中有两个成员变量:hInternet、hConnect和...
8. **父类构造方法调用**:子类构造方法的第一条语句必须是调用父类的构造方法,要么通过`super`,要么通过默认的隐式调用。错误的表述是调用父类构造方法的语句不必是第一条。 9. **访问权限**:覆写(Override)...
在某些情况下,我们需要在子类中调用父类的方法,以便于扩展或覆盖原有功能。这里我们将深入探讨如何使用`Object.getPrototypeOf`来实现这一目标。 首先,让我们理解`Object.getPrototypeOf`这个内置函数的作用。它...
2. **使用未绑定方法调用父类构造方法** 在Python中,我们可以直接访问类的方法,它们是未绑定方法。在`ZileiFun`类的`__init__`方法中,可以看到`FuleiFun.__init__(self, num)`的调用。这种方式直接使用父类`...