1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法。那么以前所做的修改就都回到以前了,就是说又成了父类的构造方法了。

2.在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,就需要用到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关键字。

转载于:https://www.cnblogs.com/sz20142898/p/4946923.html

Java06动手动脑相关推荐

  1. JAVA课上动手动脑问题以及课后测试1,2总结

    课堂测试1      像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 "软件" 2    (1)题目避免重复 (2)可定制(数量/打印方式) 设计思路 1)产生两 ...

  2. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  3. 04-异常处理-动手动脑

    1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*;classAboutExcepti ...

  4. 动手动脑-Java重载

    有以下例子: 例: Using overloaded methods public class MethodOverload { public static void main(String[] ar ...

  5. 04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦

    Answer: 动手动脑: 1--以下代码为何无法通过编译?哪儿出错了? Answer: 因为类Foo的构造函数是有一个参数的,所以我们在new一个Foo类的对象时必须赋予一个符合条件的实参. 2-- ...

  6. 动手动脑及课后实践3

    1.    动手动脑1: (一)运行结果: 分析原因:在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器 ...

  7. 第三次实验及动手动脑

    //第一个动手动脑 package 动手动脑3;public class ClassAndObjectTest {public static void main(String[] args) {//创 ...

  8. Java之动手动脑(三)

    日期:2018.10.12 星期五 博客期:017 这次留了两个动手动脑作业!我需要一个一个来说!先说第一个吧! Part 1 :随机生成1000个随机数 代码: 1 //以下为 RandomMake ...

  9. 第二次作业动手动脑的解答

    第一个动手动脑让我看老师发 的文件,EnumTest.java.猜它 的运行结果. 我猜嘛,s和 t肯定引用的不同对象,老师上课也讲过是吧. falsefalsetrueSMALLMEDIUMLARG ...

最新文章

  1. win10pin不可用进不去系统_华为鸿蒙系统来了!若安卓不可用,鸿蒙随时顶上!
  2. bool查询原理 es_吐血整理:一文看懂ES的R,查询与聚合
  3. 操作系统【一】进程同步和信号量
  4. 人工智障学习笔记——机器学习(11)PCA降维
  5. Android中文翻译组 - 简介
  6. 四,AXI总线协议解析
  7. hdu1728 逃离迷宫
  8. PythonStock(25)股票系统:PythonStock V1 发布了,基于Python开发,使用Tushare抓取数据,存储到Mariadb数据库中,同时还开发了通用数据报表系统,通过配置
  9. 中国山梨酸市场运营动态分析与前景方向预测报告2022-2028年
  10. OCUI界面设计:导航控制器
  11. 机器人硬汉 聆听_第268章 百拳机器人
  12. 设计模式---004策略模式---【巷子】
  13. iOS关闭键盘的两种简单方法
  14. 学习编程先学什么?怎么学习编程?
  15. 服务器和应用系统迁移方案
  16. java实现社交账号登录
  17. PostgreSQL 多维空间几何对象 相交、包含 高效率检索实践 - cube
  18. jar文件打开方式和直接运行方法
  19. 推荐几本Android程序员必读书籍
  20. 对科研思维方法的整理

热门文章

  1. Jmeter——for循环控制器和if逻辑控制器
  2. css动画详解 (transition animation)
  3. 8.最大公约数和最小公倍数问题
  4. 深入浅出.NET泛型编程(1)
  5. 常用的服务器系统,常用的服务器操作系统
  6. mysql 默认page大小_Innodb优化之修改页大小
  7. Missing binding node_modules/node-sass/vendor/darwin-x64-72/binding.node
  8. vue获取浏览器地址栏参数(?及/)路由+非路由实现方式
  9. Netty入门篇-从双向通信开始
  10. 改造一下jeecg中的部门树