`

父类没有默认的构造函数,子类会编译通不过

 
阅读更多

父类没有默认的构造函数,子类会编译通不过

例子 父类

public class A {
	
	public A(String s){
		System.out.println("father");
	}
}

 子类 错误代码

public class B extends A{

	public B() {
	system.out.println("son");
	}


}

 子类正确代码

public class B extends A{

	public B(String s) {
		super(s);
	}


}

 如果父类没有写构造方法或者父类的构造方法跟默认的一样

那么子类不写构造方法就会默认调用父类的构造方法,

如果父类是默认的构造方法

子类要写构造方法 那么必须先super()  默认的你可以不写也 编译器会给你默认加上

但如果父类重载了构造方法 比如 A(String s)

那么子类就必须写 B(String s){ super(s); }

分享到:
评论

相关推荐

    Java构造函数的继承问题[收集].pdf

    这意味着在创建子类对象时,虽然会先调用父类的默认构造函数初始化父类部分,但子类还需要有自己的构造函数来完成自身的初始化。 3. **构造函数调用顺序**: - 在创建子类对象时,首先调用父类的默认构造函数,...

    构造函数借鉴.pdf

    3. 父类构造函数的调用:在子类的构造函数中,如果没有显式调用父类的构造函数,那么系统会默认调用父类的无参构造函数。如果父类没有无参构造函数,编译器会报错,因为子类无法执行必要的初始化步骤。 4. 显式调用...

    构造函数的继承问题 笔记

    1. **默认构造函数的自动调用**:如果父类没有任何显式声明的构造函数,则编译器会为父类自动生成一个默认构造函数。当子类的构造函数被调用时,会隐式调用这个默认构造函数。 例如: ```java class Base { //...

    java基础测试卷.pdf

    }}A父类无参构造函数 子类无参构造函数B父类有参构造函数 子类无参构造函数C父类无参构造函数 子类有参构造函数D编译错误 这是一份Java基础测试卷,涵盖了Java语言的核心概念和语法。以下是对题目中涉及知识点的...

    Java语言与面向对象程序设计第12讲(继承与多态)

    如果子类没有显式调用父类构造函数,Java会默认调用父类的无参构造函数。如果父类没有无参构造函数,子类必须显式调用父类的构造函数,且`super`语句必须是子类构造函数的第一行。 - **5.5.3 对象初始化过程**:在...

    java kok 构造与析构函数

    public MyClass() { // 默认构造函数 name = "Default"; } public MyClass(String newName) { // 参数化的构造函数 this.name = newName; } } ``` 析构函数在Java中并不是一个标准的成员函数,因为Java采用了...

    Java继承习题

    如果父类没有无参构造函数,则子类需要显式地调用父类的构造函数。此外,子类不能自动执行父类的有参构造函数。因此,不正确的说法是 **D. 子类不但可以自动执行父类的无参构造函数,也可以自动执行父类的有参构造...

    c++类构造函数详解

    * 如果没有显示地写构造函数,系统会默认创建一个无参数构造函数。 * 在类中有指针成员时,系统默认创建的复制构造函数可能会存在风险,需要手动编写复制构造函数。 * 等号运算符重载需要注意的是,它不属于构造函数...

    华为C++笔试题全部汇总

    父类`CParent`的构造函数尝试调用纯虚函数`Print`,这是不允许的,因为纯虚函数没有定义,编译时会报错,程序无法执行。 10. 重载操作符的多态性: 当`operator==`被声明为虚函数时,它可以表现出多态性。在这个...

    Java语言程序设计基础第十版第十一章课后复习题答案

    - **解析**: 如果子类的构造函数中没有显式调用父类的构造函数,则默认会调用父类的无参构造函数。但是如果子类的构造函数中有明确调用了带有参数的父类构造函数,则不会调用无参构造函数。 #### 11.7 重写父类方法...

    Java语言程序设计(6).pdf

    如果去掉`SubClass`的所有构造函数,Java会自动提供一个默认的无参构造函数,因此程序仍然可以编译运行,但输出会有所不同,只会显示父类的构造函数被调用。 2. 抽象类与接口: 抽象类是不能被实例化的类,它通常...

    JAVA技能、Android技能总结完整版.doc

    在Java中,如果子类没有指定构造函数,那么会默认调用父类的无参构造函数。如果父类没有无参构造函数,子类必须在构造函数中显式调用父类的构造函数。 3. 多态:多态性使得父类引用可以指向子类对象,这样在编译时...

    Java 八股文背诵版(113 道)

    - 详细的先后顺序:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数 7. Java 代码块执行顺序: ...

    什么是java序列化,如何实现java序列化?学习.pdf

    1. 在反串行化的时候,默认构造函数会被调用。但是若把父类标记为可以串行化,则在反串行化的时候,其默认构造函数不会被调用。这是因为 Java 对串行化的对象进行反串行化的时候,直接从流里获取其对象数据来生成一...

    JAVA面向对象JAVA面向对象.doc

    - 子类构造函数如果没有显式调用父类构造函数,Java 编译器会自动在子类构造函数的第一行添加 `super()`,调用无参数的父类构造函数。如果父类没有无参数构造函数,子类必须显式调用其他带参数的构造函数,否则...

    C++面试题

    类的构造函数和析构函数是类的重要组成部分,其中构造函数包括默认构造函数、拷贝构造函数、析构函数和赋值函数。拷贝构造函数在对象复制、函数参数传递和函数返回值时被调用。 构造函数和普通函数在形式上的区别...

    AUST大二暑假Java实训第二天上课笔记

    在Java中,如果子类的构造函数没有明确指定要调用的父类构造函数,则会默认调用无参的父类构造函数。如果父类没有无参构造函数,则必须在子类构造函数中使用super()来显式地调用父类的构造函数。super关键字指向父类...

    C++程序员面试题集

    知识点:C++编译器自动为类产生四个缺省函数,分别是默认构造函数、拷贝构造函数、析构函数和赋值函数。 8. 拷贝构造函数在哪几种情况下会被调用? 答:1.当类的一个对象去初始化该类的另一个对象时;2.如果函数的...

    Java计算机语言函数应用

    - Java会为每个类提供一个默认构造函数,如果没有显式定义。 - 自定义构造函数允许我们在创建对象时初始化成员变量,或者执行特定的初始化操作。 7. **递归函数** - 递归函数是调用自身的函数,常用于解决分治...

    南昌大学 C++期末考试题

    构造函数的名称与类名相同,没有返回类型,并且可以有多种重载形式,包括默认构造函数、带参数的构造函数以及拷贝构造函数。构造函数可以设置默认参数,允许在没有提供所有参数的情况下创建对象。 ### 5. 构造函数...

Global site tag (gtag.js) - Google Analytics