Constructor call must be the first statement in a constructor
super()和this ()不能共存。否则编译时会报异常。
Constructorcall must be the first statement in a constructor
换句话说就是super()和this()都必须在构造方法的第一行。
this(有參数/无參数) 用于调用本类对应的构造函数
super(有參数/无參数) 用于调用父类对应的构造函数
并且在构造函数中,调用必须写在构造函数定义的第一行,不能在构造函数的后面使用。
一个构造函数定义中不能同一时候包含this调用和super调用,假设想同一时候包含的话,能够在this()调用的那个构造函数中首先进行super()调用。也能够把TestB()这种方法改动成非构造方法。在构造方法TestB(int i)中调用。
正确解释:The parent class' constructor needs to becalled before the subclass' constructor. This will ensure that if you call anymethods on the parent class in your constructor, the parent class has alreadybeen set up correctly.
翻译:之前父类的构造函数须要调用子类的构造函数。
这将确保假设你调用不论什么方法在父类构造函数,父类已经被正确设置。
2.错误:Implicit super constructor xx()
is undefined for default constructor. Must define an explicit constructor
当子类继承时,必须在自己的构造函数显式调用父类的构造函数。自己才干确保子类在初始化前父类会被实例化,
假设你父类中有无參的构造函数,子类就不会强制要求调用。即你写的那个就能够通过,
编译器会默认帮你调用父类的构造函数。
按原来的思路,必须该成以下的:
class Person {
protected String name;
protected int age;
//你已经定义了自己主动的构造函数,此时编译器不会为你创建默认的构造函数
public Person(String name,int age) {
this.name=name;
this.age=age;
}
public void print() {
System.out.println("Name:"+name+"/nAge:"+age);
}
}
/*由于父类的构造函数是有參的,所以编译不会为你自己主动调用默认的构造函数。此时。子类在自己的构造函数中必须显式的调用父类的构造函数 */
class Student extends Person {
public Student(){ //子类构造函数
//super(); 不行,由于你的父类没有无參的构造函数
super("a",1);
//显示调用父类的构造函数。并且必须是第一行调用
}
}
class Test {
public static void main(String args[]){
}
}
Constructor call must be the first statement in a constructor的更多相关文章
- Java 错误:Constructor call must be the first statement in a constructor
今天用学校里的黑马程序员通Java语法 想到了:在有参构造函数中调用无参构造函数 语法是这样的: class Person{ private int age; public Person() { Sy ...
- Constructor Overloading in Java with examples 构造方法重载 Default constructor 默认构造器 缺省构造器 创建对象 类实例化
Providing Constructors for Your Classes (The Java™ Tutorials > Learning the Java Language > Cl ...
- 为什么js 的constructor中是无限循环嵌套:Foo.__proto__.constructor.prototype.constructor.prototype.constructor.prototype.xxx ?
constructor始终指向创建当前对象实例的(构造)函数. 任何函数都是Function类的一个实例 那么根据上述可知:任何函数的constructor属性都指向Function类,而Functi ...
- [Java] Java record
2-1 java中的封装 概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问. 好处: 1. 只能通过规定的方法访问数据 2. 隐藏类的实例 ...
- 面向对象编程(八)——this关键字
很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚. this(隐式参数) 普通方法中,this总是指向当前调用该方法的对象. 构造方法中,this总是指向正要初始 ...
- 201521123039 《java程序设计》第三周学习总结
1.本周学习总结 2.书面作业 (1)代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pu ...
- 201521123038 《Java程序设计》 第三周学习总结
201521123038 <Java程序设计> 第三周学习总结 1. 本周学习总结 附大图链接 http://naotu.baidu.com/file/5774caa2be710afbc0 ...
- 深入理解Java对象的创建过程:类的初始化与实例化
摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...
- 【原】Java学习笔记017 - 面向对象
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...
随机推荐
- Methods and systems for sharing common job information
Apparatus and methods are provided for utilizing a plurality of processing units. A method comprises ...
- 数据库-mongodb-Gridfs
GridFS是一种将大型文件存储在MongoDB的文件规范: 数据库支持以BSON格式保存二进制对象. 但是MongoDB中BSON对象最大不能超过4MB. GridFS 规范提供了一种透明的机制,可 ...
- POI 导入excel数据自己主动封装成model对象--代码分析
上完代码后,对代码进行基本的分析: 1.主要使用反射api将数数据注入javabean对象 2.代码中的日志信息级别为debug级别 3.获取ExcelImport对象后须要调用init()方法初始化 ...
- 一个ibatis映射文件的例子(包含增删改单查,多查)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...
- 配置 Phpstorm + Xdebug + xampp
配置 Phpstorm + Xdebug + xampp 1 Xampp 安装好xampp,配置 httpd.conf 在xampp面板中 单击后会出现一些配置文件,httpd.conf位于第一个 将 ...
- c# 获取一年中的周/根据一年中的第几周获取该周的开始日期与结束日期
/// <summary> /// 获取一年中的周 /// </summary> /// <param name="dt">日期</par ...
- Perl怎样过滤html标签
比方一串字符串 <div><b>123</b></div> 假设仅仅想拿到123怎么办呢? 用perl的正則表達式能够非常easy的做到. $str = ...
- 棋盘覆盖问题python3实现
在2^k*2^k个方格组成的棋盘中,有一个方格被占用,用下图的4种L型骨牌覆盖全部棋盘上的其余全部方格,不能重叠. 代码例如以下: def chess(tr,tc,pr,pc,size): globa ...
- node16---cookie session
03.js var express = require("express"); var app = express(); var db = require("./mode ...
- event内存泄漏
C#内存泄漏--event内存泄漏 内存泄漏是指:当一块内存被分配后,被丢弃,没有任何实例指针指向这块内存, 并且这块内存不会被GC视为垃圾进行回收.这块内存会一直存在,直到程序退出.C#是托管型代码 ...