super与this关键字图解

父类空间优先于子类对象产生

在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。目的在于子类对象中包含了其对应的父类空 间,便可以包含其父类的成员,如果父类成员非private修饰,则子类可以随意使用父类成员。代码体现在子类的构 造方法调用时,一定先调用父类的构造方法。理解图解如下:

super和this的含义

  super :代表父类的存储空间标识(可以理解为父亲的引用)。

  this :代表当前对象的引用(谁调用就代表谁)。

super和this的用法

  1. 访问成员

  

this.成员变量 ‐‐ 本类的
super.成员变量 ‐‐ 父类的
this.成员方法名() ‐‐ 本类的
super.成员方法名() ‐‐ 父类的

用法演示,代码如下:

class Animal {
public void eat() {
System.out.println("animal : eat");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("cat : eat");
}
public void eatTest() {
this.eat(); // this 调用本类的方法
super.eat(); // super 调用父类的方法
}
}
public class ExtendsDemo08 {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Cat c = new Cat();
c.eatTest();
}
}
输出结果为:
animal : eat
cat : eat
animal : eat

2. 访问构造方法

this(...) ‐‐ 本类的构造方法
super(...) ‐‐ 父类的构造方法

子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super()。 super() 和 this() 都必须是在构造方法的第一行,所以不能同时出现。

Java继承的三个特点

1. Java只支持单继承,不支持多继承。

//一个类只能有一个父类,不可以有多个父类。
class C extends A{} //ok
class C extends A,B... //error

2. Java支持多层继承(继承体系)。

class A{}
class B extends A{}
class C extends B{}

最新文章

  1. [C#] 简单的 Helper 封装 -- CookieHelper
  2. EXCEL技巧——SUBTOTAL函数巧妙应用
  3. android 浅谈Aidl 通讯机制
  4. 用c#实现$.now()(1437813924915)的时间效果
  5. Winform屏幕截图保存C#代码
  6. javascript中的 类初始化,遍历for in 以及with的用法
  7. 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV
  8. SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-006- 使用thymeleaf(TemplateResolver、SpringTemplateEngine、ThymeleafViewResolver、th:include、th:object、th:field="*{firstName}")
  9. Linux使用sudo提权时,出现xx 不在 sudoers 文件中。此事将被报告。visudo 命令简单介绍。
  10. HDU-4972 A simple dynamic programming problem
  11. 改进的newlisp编译脚本,只需要配置
  12. 关于CopyU!的常见问题解答
  13. zoj 3696 Alien's Organ(泊松分布)
  14. 应用中对APK进行安装
  15. 在HTML5的 input:file 上传文件类型控制 遇到的问题
  16. jquery zTree搜索高亮的例子
  17. 算法练习,链表二分最大n个
  18. MongoDB下载及安装
  19. BZOJ1495 [NOI2006]网络收费 【树形dp + 状压dp】
  20. iterm2切换显示屏vim乱行解决

热门文章

  1. OpenMP 入门
  2. 关于Docker的一些事--Docker-Compose 升级版本
  3. 😊SpringBoot 整合 Elasticsearch (超详细).md
  4. AtCoder Beginner Contest 277 题解
  5. Xtrabackup使用帮助
  6. hwlog---huawei.com/npu-exporter/utils---utils.go
  7. 【iOS逆向】某车之家sign签名分析
  8. 如何实现一个优秀的 HashTable 散列表?
  9. [最短路径问题]Dijkstra算法(含还原具体路径)
  10. VulnHub靶机渗透实战9-vikings