1.this关键字

this有三种常见用法

1.this调用本类中的属性,也就是类中的成员变量
2.this调用本类中的其他方法
3.this调用本类中的其他构造方法,调用时要放在构造方法的首行。

2.super关键字

在java里面,对于super关键字通常有两种用法

  1. 用在子类的构造方法里(初始化用),主要是调用父类的默认构造方法,如果父类有不止一个构造方法,可以通过super指定具体的构造函数,比如 super(paras);
  2. 用在子类里调用隐藏或重写的属性或行为,比如 super.onDestroy()等等;
    对于第1种需要注意,super表示当前类的父类,super()调用的是父类默认的构造方法,即这样可以对父类进行初始化。如何没有对父类进行初始化,当子类调用父类的方法时,便会从逻辑上出现错误,因为没对父类初始化,父类的方法和属性便没有内存空间。

3.关于super 与 this 关键字的对比(区别)

  1. super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
  2. this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
  3. super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
  4. this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
  5. 调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
  6. super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
  7. super()和this()均需放在构造方法内第一行。
  8. 尽管可以用this调用一个构造器,但却不能调用两个。
  9. this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
  10. this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
  11. 从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

JAVA知识基础(九):this、super 关键字总结相关推荐

  1. 【Scala教程】如何在已掌握的Java知识基础上快速上手Scala?【个人学习记录】

    如何在已掌握的Java知识基础上学习Scala 前言 正文开始! 1. 编译运行 2. 声明变量 3. 输出 4. 显式指定变量类型 5. 范围区间 6. 写入文本文件 7. 读取文本文件 8. if ...

  2. JAVA入门级教学之(super关键字)

    目录 JAVA入门级教学之(super关键字) 1.super关键字用在构造方法中: 2.语法规则: 3.注意:super();的调用只能放在构造方法的第一行,和this();的调用规则一样 4.通过 ...

  3. JAVA知识基础(八):继承

    1.概述 1.1.继承的由来 至于由来简单一句话:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为. 继承描述的是事物之间的所属关系,这种关系是 is-a ...

  4. Java面向对象之继承、super关键字、方法重写

    一.继承 1.简单说明 子类可以拥有父类中除了私有变量/函数外的所有的内容,当出现x是y的一种什么的时候可以使用继承,x继承于y,x是y的儿子,x子类是对y父类的扩展. 反映的是一种特殊关系,如动物- ...

  5. Java学习第八天之super关键字的概念

    super关键字的特点: ·super和this关键字的特点类似:super代表的是父类对象的引用. ·当子父类的成员出现同名时,可以通过super来区分. ·子类的构造方法中,通过super关键字调 ...

  6. JAVA知识基础(四):深入理解static关键字

    1.static存在的主要意义 static的主要意义是在于创建独立于具体对象的域变量或者方法.以致于即使没有创建对象,也能使用属性和调用方法! static关键字还有一个比较关键的作用就是 用来形成 ...

  7. JAVA知识基础(五):深入理解final关键字

    1.final 关键字 final关键字主要用在三个地方:变量.方法.类. final修饰变量:final修饰一个类时,表明这个类不能被继承. final修饰方法:final修饰方法,方法不可以重写, ...

  8. JAVA知识基础(一):数据类型

    在我们学习一门编程语言时,最先要了解的就是数据类型,而数据类型又都是抽象的概念,初学者理解起来比较困难,所以我们往往是先应用再理解,但是在本篇文章我决定用先理解再应用的方式尝试一下,试试效果. 1.对 ...

  9. Java之继承概念和super关键字

    继承是Java对面对对象的一种特用的用法,比如几个类中,同是含有一个类的全部属性和方法,为了避免全部调用,就可以采用继承. 比如,一个人类和一个学生类,学生类包含人类的全部属性. 用发在类后加上ext ...

最新文章

  1. Spring Boot 2.3 中开启Spring Security
  2. 解密微信小程序Java登录流程(ssm实现具体功能)
  3. Codeforces 919D Substring (拓扑图DP)
  4. How to use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem
  5. java cpu 占用高问题定位
  6. Android实战:手把手实现“捧腹网”APP(三)-----UI实现,逻辑实现
  7. 【遥感物候】1983-2012年时间序列中国地区GIMMS 3g NDVI下载(已进行旋转、格式转换、投影变换和裁剪)
  8. JS事件的捕获和冒泡阶段
  9. 9 Characteristics of Free Software Users
  10. 机载激光雷达测量技术及工程应用实践_倾斜摄影与激光雷达技术在实景三维测量应用中的比较...
  11. 一个好用的变换类TransformManager
  12. spring boot 使用 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
  13. 四轴飞行器Bootloader和固件的更新
  14. ul阻燃标准有几个等级_UL 阻燃标准
  15. Office KMS主机搭建
  16. php mysql视频_PHP+MySQL视频教程
  17. 青海计算机三级成绩查询,2013青海计算机三级成绩查询系统
  18. Java IDEA 编辑器代码前进后退快捷键
  19. Hbase性能测试及优化过程记
  20. openwrt路由器打印机服务器设置_openwrt路由器打印机服务器设置_TP-Link无线路由器打印机设置指南...

热门文章

  1. Qt关闭程序的时候创建json文件,再次启动时重新加载到界面上
  2. Qt下Tcp通信的简单使用三
  3. C语言 函数声明和定义 - C语言零基础入门教程
  4. 斯皮尔 皮尔森 肯德尔_一起来学应用统计学(全部)(二)持续更新
  5. java推送Comet_使用Comet4j实现消息推送
  6. 运营商 sni 服务器,什么是服务器名称指示(SNI)
  7. 支付宝 android 2.3,app被拒记录-2.3-包含支付宝
  8. c语言中创建一个整数数组_VBA中动态数组的创建及利用方法
  9. 计算机的服务如何还原,电脑怎么样还原到出厂设置
  10. linux逻辑文件块,linux逻辑卷组创建以及修改