Java基础(13)之继承

1. 继承

1.1 继承概述

在这里插入图片描述
但是我们将相同的类提取出来就会变成这个样子
在这里插入图片描述
让他们之间产生一个继承的关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 继承的好处和弊端

IS-A、HAS-A和USE-A关系
在这里插入图片描述
苹果是水果的一种可以使用继承
猫是动物的一种可以使用继承
猫和狗不具备继承关系,不可以使用继承

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

在这里插入图片描述

1.4 super

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

1.7 super内存图

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

1.8 方法重写

在这里插入图片描述

1.9 方法重写注意事项

在这里插入图片描述

1.10 Java中继承的注意事项

在这里插入图片描述

发布了50 篇原创文章 · 获赞 13 · 访问量 1853

猜你喜欢

转载自blog.csdn.net/qq_43581078/article/details/104345605
今日推荐