}
}
下面展示一些 `测试类代码`。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
z.method();
z.show();
}
}
下面展示一些 `代码执行结果`。

> 可见,Zi继承了Fu的方法,因此,在Zi中可以直接调用Fu中的show方法。
[]( )四、继承的好处和弊端
=============================================================================
1. **继承的好处**
> 1)提高了代码的复用性(多个类相同的成员可以放到同一个类中)
> 2)提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
2. **继承弊端**
> 继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着发生变化,削弱了子类的独立性
[]( )五、什么时候使用继承
-----------------------------------------------------------------------------
1. 继承体现的关系:is a
2. 假设法:我有两个类A和B,如果他们满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,这时候就可以考虑使用继承关系来体现,否则就不能滥用继承关系
3. 举例:苹果与水果 、 猫和狗
[]( )六、继承中变量的访问特点
===============================================================================
下面展示一些 `父类代码`。
package Dome;
public class Fu {
int age = 40;
}
下面展示一些 `子类代码`。
package Dome;
public class Zi extends Fu {
int age = 20;
public void method(){
System.out.println(age);
}
}
下面展示一些 `测试类代码`。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
z.method();
}
}
> 子类和父类都有age,如果代码执行,调用的age是子类的还是父类的呢?那就让我们实践见真理

**那么如果方法中也有age呢?会发生什么?**
下面展示一些 `子类代码`。
package Dome;
public class Zi extends Fu {
int age = 20;
public void method(){
int age = 10;
System.out.println(age);
}
}

* * *
_**通过这个案例我们可以得出以下结论(就近原则)**_
* * *
> 在子类方法中访问一个变量
>
> 1. 子类局部范围找
> 2. 子类成员范围找
> 3. 父类成员范围找
> 4. 如果没有就报错(不考虑父亲的父亲)
[]( )七、super
==========================================================================
> 那么如果我想要访问父类的变量怎么办呢???
> 这时候我们引入super关键字
* * *
super关键字的用法和this关键字的用法相似
1. this:代表本类对象的引用
2. super:代表父类存储空间的标识(可以理解为父类对象引用)
| 关键字 | 访问成员变量 | 访问构造方法 | 访问成员方法 |
| --- | --- | --- | --- |
| this | this.成员变量 访问本类成员变量 | this(…)访问本类构造方法 | this.成员方法() 访问本类成员方法 |
| super | super.成员变量 访问父类成员变量 | super(…) 访问父类构造方法 | super.成员方法(…) 访问父类成员方法 |
* * *
下面展示一些 `父类代码`。
package Dome;
public class Fu {
int age = 40;
}
下面展示一些 `子类代码`。
package Dome;
public class Zi extends Fu {
int age = 20;
public void method(){
int age = 10;
System.out.println(age);
System.out.println(this.age);
System.out.println(super.age);
}
}
下面展示一些 `测试类代码`。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
z.method();
}
}

> 通过this和super我们就可以调用不同的同名变量或者方法
* * *
[]( )八、继承中构造方法的访问特点(1)
====================================================================================
> 引入案例
下面展示一些 `父类代码`。
package Dome;
public class Fu {
public Fu() {
System.out.println("Fu无参构造方法被调用");
}
public Fu(int age){
System.out.println("Fu有参构造方法被调用");
}
}
下面展示一些 `子类代码`。
package Dome;
public class Zi extends Fu {
public Zi() {
System.out.println("Zi无参构造方法被调用");
}
public Zi(int age){
System.out.println("Zi有参构造方法被调用");
}
}
下面展示一些 `测试类代码`。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
}
}
当执行程序的时候发现

Zi中构造方法被访问的时候会先去访问Fu中的构造方法
这是为什么呢??
那么让我们尝试用有参构造方法试一试
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi(10);
}
}

为什么子类所有构造方法默认都会访问父类无参的构造方法呢???
> 1. 因为子类会默认继承父类中的数据, 还可能会使用父类的数据。所以,子类初始化之前,一定会完成父类数据初始化。
> 2. 每一个子类构造方法的第一条默认语句是super()
那么倘若Fu类中没有无参构造方法,只有有参构造方法,程序应该怎么该呢??
下面展示一些 `父类代码`。
package Dome;
public class Fu {
/*public Fu() {
System.out.println("Fu无参构造方法被调用");
}*/
public Fu(int age){
System.out.println("Fu有参构造方法被调用");
}
}
下面展示一些 `子类代码`。
package Dome;
public class Zi extends Fu {
public Zi() {
super(20);
System.out.println("Zi无参构造方法被调用");
}
public Zi(int age){
super(20);
System.out.println("Zi有参构造方法被调用");
}
}
下面展示一些 `测试类代码`。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
}
}
# 1200页Java架构面试专题及答案
小编整理不易,对这份**1200页Java架构面试专题及答案**感兴趣劳烦帮忙**转发/点赞**


# 百度、字节、美团等大厂常见面试题

lass Zi extends Fu {
public Zi() {
super(20);
System.out.println("Zi无参构造方法被调用");
}
public Zi(int age){
super(20);
System.out.println("Zi有参构造方法被调用");
}
}
下面展示一些 测试类代码
。
package Dome;
/*
测试类
*/
public class ExtendDome {
public static void main(String[] args) {
Zi z = new Zi();
}
}
1200页Java架构面试专题及答案
小编整理不易,对这份1200页Java架构面试专题及答案感兴趣劳烦帮忙转发/点赞
[外链图片转存中…(img-TVQwbLyX-1719266362022)]
[外链图片转存中…(img-FSzS2XpC-1719266362023)]
百度、字节、美团等大厂常见面试题
[外链图片转存中…(img-swu0zsES-1719266362023)]