构造函数中的super和this的使用
super用于调用父类构造函数的部分,其必须出现在构造函数的第一行。super在调用时第一件事就是去执行父类构造函数的部分,所执行的父类构造函数与super()括号中的参数相对应。
this用于在一个构造函数中调用同一个类另一个构造函数,其也必须是第一行语句。
super和this不能同时出现在一个构造函数中,其两个在使用时必须出现在构造函数的第一行语句,其区别为super调用父类构造函数,this调用自身类的构造函数。
为便于理解,可以将this理解为自己,也就是这个类本身,因此调用this是调用自己类的构造函数。
public abstract class Animal {
private String name;
public String getName() {
return name;
}
public Animal() {
}
public Animal(String theName) {
name=theName;
}
public Animal(String x,String getname) {
}
}
public class Hippo extends Animal{
String name;
public Hippo() { //编写此构造函数父类需也有无参构造函数
String test;
}
public Hippo(String name) {
super(name); //使用super方法将name传给父类Animal
System.out.println("big");
}
public Hippo(String x,String name) {
this(name); //this为调用只有一个string参数的构造函数,即调用上面的构造函数输出big
//super(name); //super和this只能调用一个
System.out.println(x);
}
}
输出结果为
big
Buffy
构造函数中的super和this的使用的更多相关文章
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
我想这应该是Java构造函数的一种机制吧,首先以子类和父类为例.当你创建一个子类的实例时,首先会调用父类的构造函数,然后再调用子类的构造函数,如果父类中没有缺省构造函数,则必须再子类的构造函数中显示的 ...
- super在构造函数中的运用
package example;//在子类构造对象时,访问子类构造函数时候,父类也运行.//原因是:在子类的构造函数中第一行有一个默认的隐式语句super();/* 构造函数不能覆盖 子类的实例化过程 ...
- 关于构造函数中的this()和super()
今天看到一个这段代码 public DataSourcePool(String driver, String url, String user, String pwd) throws Exceptio ...
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...
- Java中的super与this解析
好了,现在开始讨论this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象 ...
- Java中的super()使用注意
1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)3)super: 它引用当前对象的 ...
- 关于继承中的super()调用父类构造方法
super super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. 每当你new一个子类对象的时候,子类对象都隐式内置了一个父类对象.所以说,为了那个内置的父类 ...
- 总结java中的super和this关键字
知识点: 在java类中使用super引用父类的成分,用this引用当前对象 this可以修饰属性.构造器.方法 super可以修饰属性.构造器.方法 关于子类实例化过程中的内存分配,在下一篇博客中说 ...
- Java中的 super和this
super关键字 在子类中用于表示父类对象的引用,可以在子类中调用父类中的方法的属性. super语句 --- 子类在继承父类之后,子类的构造方法中会含有一个super语句. 如果没有手动指定supe ...
随机推荐
- struts中指定编码(使用Filter后仍然乱码)
https://www.cnblogs.com/oldinaction/p/5167481.html 概述: Tomcat默认是 ISO编码,不支持中文.尝试过自己写 Filter,在web.xml中 ...
- bzoj1050 旅行
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大 ...
- 1031 Hello World for U (20 分)
1031 Hello World for U (20 分) Given any string of N (≥5) characters, you are asked to form the chara ...
- 如何缓解DDOS攻击
1.减少攻击面 (a) reduce the number of necessary Internet entry points,(b) eliminate non-critical Internet ...
- Spring 基础使用
1 id 和 name 的区别 id:不可重复,不可包含特殊字符 name:可以重复,可以包含特殊字符 2 scope singleton:配置单例模式(默认),在容器启动时创建对象,而且只创建一个 ...
- php localeconv() 函数实例讲解
php localeconv() 函数返回一包含本地数字及货币格式信息的数组.本文章向码农介绍php localeconv() 函数的使用方法和基本实例.需要的码农可以参考一下. 定义和用法 loca ...
- Python 基础 json 与pickle
json 支持: str,int,tuple,list,dictpickle 支持python里所有的数据类型(包括函数) 只能在python中使用 json 与pickle 是一种 ...
- Eclipse变量名自动补全问题 自定义上屏按键为TAB
Eclipse空格等号等都可以上屏,这样有时候输入变量名再按空格就会自动补全,非常讨厌.那么怎么办呢? 1.首先你的Eclipse需要装有 Eclipse plug-in development en ...
- 数据库之SQL笛卡尔积
1.笛卡尔积定义 笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join).所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合,上图中两个表 ...
- Pillow 读取图片截断错误
做图像处理的时候,Pillow是经常使用到的模块. 最近在读取图片的时候出现了一个错误. OSError: image file is truncated (461 bytes not process ...