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 ... 
随机推荐
- 循环语句第3种 FOR ... in ... LOOP  END LOOP;
			--------第3种-------- FOR ... in ... LOOP END LOOP; BEGIN FOR i IN 1..10 LOOP dbms_output ... 
- java的反射机制(重要)
			1,反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ... 
- codeforces7D Palindrome Degree(manacher&dp或Hsh&dp)
			D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input standard ... 
- web security
			brute force cracking 暴力破解 Brute force (also known as brute force cracking) is a trial and error me ... 
- (三)Fegin声明式服务调用
			上一篇,讲了SpringClound中的消费者采用Ribbon+Rest来实现,这回我们用组件Feign来实现服务的消费者,Fegin中也是默认集成了Ribbon的;和Eureka结合也能实现负载均衡 ... 
- ios各个屏幕
			func currentDeviceScreenMeasurement() -> CGFloat { var deviceScree: CGFloat = 3.5 if ((568 == SCR ... 
- Linux mount挂载umount卸载
			mount/umount挂载/卸载 对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录.一个独立且唯一的文件结构 Linux中每个分区都是用来组成整个文件系统的一部分 ... 
- Gram矩阵 迁移学习 one-shot 之类
			格拉姆矩阵是由内积空间中的向量两两内积而得.格拉姆矩阵在向量为随机的情况下也是协方差矩阵.每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特 ... 
- Android ViewPager+属性动画 实现炫酷视差动画效果
			ViewPager有一个setPageTransform()方法可以实现很多酷炫的动画效果 先来个仿QQ的侧滑面板效果 vp.setPageTransformer(true, new PageTran ... 
- 一袭白衣一 IDEA的破解安装以及汉化
			DEA是一款比eclipse用起来更好用的一款代码编辑器,本人之前也是一直在用eclipse来写代码,后来发现了IDEA用起来会更顺手,所以又转用IDEA了,今天给大家分享一下IDEA的下载安装破解以 ... 
