java中super和this
2016-05-17 00:00
267 查看
super代表的是父类、超类,用在继承中的子类中;this代表对象本身,用在本类中。
super访问的是被子类隐藏的父类的属性或被覆盖的方法,而this访问的是同一类中的成员。
super调用的是父类中的某一个构造函数,而this调用的是本类中其他的构造函数。
super和this都需要位于构造器执行体的第一行,否则编译不通过。但是他们两个不能同时存在,因为this要调用其他的构造函数,而其他的构造函数也有super语句,这就形成了冲突,编译不过。
用this可以调用一个构造器,不可以调用两个。
如果子类中没有显示调用父类的任何构造器(任何super和this的形式),系统会默认调用父类无参构造,如果父类没有无参构造,那么就会编译出错。
super调用的父类方法或属性,必须是public或者protect的,否则因为访问权限的问题也会出错。
this解决变量命名冲突和不确定性的问题,例如参数名和变量名相同的时候,需要使用this来区分。
直接用this()加上参数就可以调用对应参数的类构造器,用此方式最多可以调用一次其他构造器。
this最大的作用就是在一个方法中调用同类中的其他方法和属性。
super访问的是被子类隐藏的父类的属性或被覆盖的方法,而this访问的是同一类中的成员。
super调用的是父类中的某一个构造函数,而this调用的是本类中其他的构造函数。
super和this都需要位于构造器执行体的第一行,否则编译不通过。但是他们两个不能同时存在,因为this要调用其他的构造函数,而其他的构造函数也有super语句,这就形成了冲突,编译不过。
用this可以调用一个构造器,不可以调用两个。
如果子类中没有显示调用父类的任何构造器(任何super和this的形式),系统会默认调用父类无参构造,如果父类没有无参构造,那么就会编译出错。
super调用的父类方法或属性,必须是public或者protect的,否则因为访问权限的问题也会出错。
this解决变量命名冲突和不确定性的问题,例如参数名和变量名相同的时候,需要使用this来区分。
直接用this()加上参数就可以调用对应参数的类构造器,用此方式最多可以调用一次其他构造器。
this最大的作用就是在一个方法中调用同类中的其他方法和属性。
相关文章推荐
- Java过滤任意(script,html,style)标签符,返回纯文本--封装类
- java项目WEB-INF目录作用
- Spring MVC JSON自定义类型转换
- Java图片工具类完成图片的截取和任意缩放
- struts校验框架的一个异常
- 利用java实现的一个发送手机短信的小例子
- Java SpringMVC项目导出excel多种类对应工具类整理(util)
- 一个简单的Java单例示例谈谈并发
- JavaMail学习笔记——JavaMail 接收邮件
- Java核心知识点-NIO
- Java反射机制详解
- Java SpringMVC项目导入excel2003以及2007多版本自动识别对应工具类(util)
- java嵌套类和内部类
- java项目打包成exe文件
- java集合框架03——ArrayList和源码分析
- spring mvc实现Restful返回json格式数据
- Java工具类---数组操作ArrayUtil
- Eclipse插件SVN配置
- javamail接收邮件(较全代码)
- java.lang.NoSuchFieldError 和 NoSuchMethodError