为什么构造函数不能是虚函数(为什么构造函数不能为虚函数)

互联网- 2023-08-21 15:20:29

什么是构造函数 什么是实例 为什么说属性在构造函数中声明,方法在原型中声明

大家好,今天小编来为大家解答为什么构造函数不能是虚函数这个问题,不建议使用构造函数很多人还不知道,现在让我们一起来看看吧!

本文目录

  1. 构造函数说明为纯虚函数是没有意义的
  2. 构造函数的八种类型
  3. 为什么构造函数不能是虚函数
  4. 为什么构造函数的返回类型只能是void型

构造函数说明为纯虚函数是没有意义的

构造函数不能是虚函数,更不能是纯虚函数。虚函数对应一个vtable,如果构造函数是虚函数,就需要通过vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找vtable,所以构造函数不能为虚函数。

构造函数的八种类型

构造函数是一种特殊的方法,用于创建对象。在Java中,构造函数有以下八种类型:

1.无参构造函数:没有参数的构造函数。

2.带参构造函数:有一个或多个参数的构造函数。

3.默认构造函数:没有参数的构造函数,如果没有显式地定义任何构造函数,则编译器会自动生成一个默认构造函数。

4.拷贝构造函数:用于创建一个新对象,该对象与现有对象具有相同的属性值。

5.浅拷贝构造函数:用于创建一个新对象,该对象与现有对象具有相同的属性值,但对于引用类型的属性,只复制引用地址而不是复制对象本身。

6.深拷贝构造函数:用于创建一个新对象,该对象与现有对象具有相同的属性值和引用类型的属性,但对于引用类型的属性,需要复制对象本身。

7.重载构造函数:在同一类中定义多个具有相同名称但参数列表不同的构造函数。

8.隐藏构造函数:与同名的其他构造函数冲突时,可以使用访问修饰符“private”来隐藏其他构造函数。

为什么构造函数不能是虚函数

构造函数不能声明为虚函数的原因是:所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象,如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造,还有一个原因就是为了防错,试想如果你在子类中一不小心重写了个跟父类构造函数一样的函数,那么你的父类的构造函数将被覆盖,也即不能完成父类的构造.就会出错.------子类继承了父类的public方法以后,当然可以在public中添加新的方法和属性(属性一般放在private或者protect里面),这是继承的基本用法哦

为什么构造函数的返回类型只能是void型

构造函数的返回类型不可指定如果在构造函数前面写上void,那么构造函数就变成无效的了。 构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。其他方法都有返回值,即使是void返回值。

OK,本文到此结束,希望对大家有所帮助。

什么是构造函数 什么是实例 为什么说属性在构造函数中声明,方法在原型中声明
  • 声明:本文内容来自互联网不代表本站观点,转载请注明出处:bk.66688815.com/12/118807.html
上一篇:为什么浓茶不适合用来解酒(为什么浓茶不能喝)
下一篇:为什么椰子油不能炒菜(为什么椰子油不能炒菜呢)
相关文章
返回顶部小火箭