创建一个没有指定调用父类构造函数的子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数(没有特别声明出父类的无参构造函数),这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,或者在父类中加一个无参数的构造函数,就不会报错。
我们假设A是B的父类,B是A的子类。
1、如果程序员没有给类A没有提供构造函数,则编译器会自动提供一个默认的无参数的构造函数,如果用户提供了自己的构造函数,则编译器就不在提供默认的无参数构造函数。
2、子类B(没有指定调用父类构造函数)实例化时会自动调用父类A的默认构造函数,所以如果A的默认的无参数的构造函数为private,则编译器会报错,而如果A没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到A的默认无参数构造函数。所以,我们最好给父类A提供一个无参数的构造函数。或者在B的构造函数中显示的调用父类A的有参构造函数
分享到:
相关推荐
Java泛型构造函数详解 Java中泛型构造函数是一种特殊的构造函数,它至少需要有一个泛型类型参数。泛型构造函数可以出现在泛型类中,也可以出现在非泛型类中。在本文中,我们将讨论不同的Java泛型构造函数,包括非...
### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...
- 最好在构造函数中对变量进行初始化,确保每个实例都有明确的初始状态。 - 初始化对于避免程序运行时出现意外错误至关重要。 #### 六、高级数据类型 - **`BigInteger`**: 支持任意精度的整数运算。 - **`...
### Java多线程小结 #### 一、多线程的概念与意义 多线程是Java编程中的一个重要概念,指的是程序在运行时可以同时执行多个线程的能力。它能够提高程序的性能,尤其是在多核处理器的环境下。多线程使得程序能够更...
下面是对"Java中类的继承学习小结"的详细讲解。 首先,类的继承使用关键字`extends`来实现。子类(也称为派生类)声明时,会指定一个父类(或超类): ```java public class DerivedClass extends BaseClass { //...
这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心编写的教学精华,旨在帮助学生巩固所学知识并为后续学习打下坚实基础。 在Java课程中,有几个核心概念和技术是必...
在JavaScript中,构造函数使用new关键字进行调用,它们与工厂函数相似,但不同之处在于构造函数使用this关键字来绑定新对象的属性和方法。构造函数方式的代码示例如下: ```javascript function Car(color, doors) ...
《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...
这篇小结将深入探讨这两个关键概念,以及它们在实际编程中的应用。 首先,类是Java中的蓝图,它定义了一组特性和行为,这些特性和行为共同构成一个特定实体。类可以包含字段(或称为属性),它们代表对象的状态,...
面向对象是Java的核心特性,它包括类、对象、接口、抽象类、构造函数、继承、多态、封装等概念。类是对象的模板,用于定义一组属性(变量)和行为(方法)。对象是类的实例,具有特定的属性和行为。接口允许定义一...
字节数组和字符串之间的转换通常使用`String(byteArray, encoding)`构造函数或`getBytes(encoding)`方法。如果字符串由错误的编码方式产生(如ISO8859-1转换GBK),可以先将其转换为ISO8859-1的字节数组,然后再以...
使用`Class.getConstructor()`或`Class.getConstructors()`获取构造函数,然后通过`newInstance()`创建对象。 - `Method`类用于方法的反射操作。`Method`对象的`invoke()`方法可以用来调用指定对象上的方法,例如`...
总的来说,`this` 关键字是 Java 中用于表示对象实例自身的一个关键字,它帮助我们访问成员变量、区分同名变量、在构造器间传递参数以及实现链式方法调用。理解并熟练运用 `this` 关键字对于编写清晰、高效的 Java ...
### 小结 本示例展示了如何使用Java编写一个简单的程序来计算基于不同距离的邮费。程序涉及到了类的定义、对象的创建、条件语句的应用以及基本的用户交互功能。这些知识点对于初学者来说是非常重要的基础概念,有助...
在本文中,我们将深入探讨JavaScript中的面向对象编程,主要关注工厂方法、构造函数模式以及如何处理共有的方法。 首先,我们来看【面向对象的工厂方法】。在JavaScript中,工厂方法是一种创建对象的模式,通过函数...
- 这个类展示了如何自定义一个类,包含基本数据类型成员变量 `m`,以及构造函数、方法。`isEven()`, `isOdd()`, `isPrime()` 分别检查整数是否为偶数、奇数或素数。 8. **二进制与十六进制转换**: - 示例代码...
#### 小结 Java的`Robot`类为我们提供了强大的屏幕捕获能力。通过合理设计和封装,我们可以轻松地在Java应用程序中实现屏幕截图功能,满足各种应用场景的需求。在实际开发中,我们还可以进一步扩展`Snap`类,增加更...
这可以通过构造函数或`capacityIncrement`属性来设置。 - **基于索引的操作**:`Vector`提供了丰富的基于索引的方法,如`get()`, `set()`, `addElement()`, `removeElementAt()`等,用于访问和修改元素。 2. **...
- 反射是Java提供的一种动态类型机制,允许程序在运行时检查类的信息,如方法、字段和构造函数,并能够动态地创建和访问对象。 - 类在加载时,其信息存储在方法区,通过`Class`对象可以获取这些信息,进而实现反射...
总结起来,Java中的类定义、成员变量、方法、构造器、重载、访问控制以及包的使用都是面向对象编程的关键组成部分。理解并熟练掌握这些概念,对于编写健壮、安全的Java代码至关重要。在实际编程中,我们会根据需求...