1. 继承

1.1 继承概述

Java基础(13)之继承
但是我们将相同的类提取出来就会变成这个样子
Java基础(13)之继承
让他们之间产生一个继承的关系
Java基础(13)之继承
Java基础(13)之继承
Java基础(13)之继承

1.2 继承的好处和弊端

IS-A、HAS-A和USE-A关系
Java基础(13)之继承
苹果是水果的一种可以使用继承
猫是动物的一种可以使用继承
猫和狗不具备继承关系,不可以使用继承

1.3 继承中遍变量的访问特点

Java基础(13)之继承

1.4 super

Java基础(13)之继承

1.5 继承中构造构造方法的访问特点

Java基础(13)之继承

1.6 继承中成员方法的访问特点

Java基础(13)之继承

1.7 super内存图

main方法加载到栈内存
Java基础(13)之继承
Zi z 加载到main方法中
Java基础(13)之继承
在堆内存中new一片空间,加载成员变量,Zi z指向001。
Java基础(13)之继承
将Zi方法加载到栈内存中,然后执行Zi的构造方法,但是执行子类构造方法的时候默认方法中是带super()方法的,所以要先访问父类的构造方法。
Java基础(13)之继承
Java基础(13)之继承
父类,先将父类的成员变量(它是子类的父类所以它的地址也是001)加载到堆内存空间,然后将父类的构造方法加载到栈内存,执行构造方法,输出,执行完毕后从栈内存消失。
Java基础(13)之继承
父类的构造方法访问完毕后,接着访问子类的构造方法,输出,然后在栈内存中消失。
Java基础(13)之继承
接着是z.show(),调用show()方法,在栈内存中加载show,调用者是z(001),this就是z(001)
Java基础(13)之继承
int age = 30;.,在栈内存加载。
Java基础(13)之继承
直接输出age
Java基础(13)之继承
这次输出的是this.age,而this的地址值是001,所以输出的是20
Java基础(13)之继承
super.age,同过调用者找到super(父类),从super(父类)找到age,所以输出40。show方法执行完毕从扎内存消失。
Java基础(13)之继承
接着调用method();方法,但是在子类中并没有。
Java基础(13)之继承
子类没有method方法,所以我们到父类中找,父类中有method()方法最所以我们调用父类的method方法。
所以执行的是父类的method方法,输出完毕后在栈内存中消失。
Java基础(13)之继承

1.8 方法重写

Java基础(13)之继承

1.9 方法重写注意事项

Java基础(13)之继承

1.10 Java中继承的注意事项

Java基础(13)之继承

相关文章: