extends:Java 中 继承(extends) 的方法和理解

目录

1.继承的理解

2.继承关系成员的访问

3.继承中成员方法的去向

4.方法重写

 5.this与super使用总结


1.继承的理解

继承是面向对象三大特征之一,继承会产生父子类, 可以使得子类具有父类的属性。

比如:A继承B,A就是子类,B就是父类,A可以不定义父类出现的内容,也可以定义,还可以添加自己类中独特的属性。

总结: 继承就是让两个类之间产生关系,这种关系就是继承关系.

继承的实现: 继承通过关键字 extends 实现的,具有自己固有的格式 格式: 修饰符 class 子类 extends 父类 {}

案例实现

首先定义一个Animal类,定义属性和行为

 在创建一个Cat类  Cat类 继承 Animal类

创建一个测试类,实例化 子类Cat 发现可以调用父类的属性,与行为,说明子类继承了父类的属性和方法

 

输出结果

2.继承关系成员的访问

(不同命变量的访问)

父子类中成员变量没有同名的情况时,不冲突(直接使用)

子类对象:调用范围

1.可以访问子父类中所有的非私有的成员变量

2. 子类成员范围找: 找有没有成员变量

3. 父类成员范围找: 找父类有没有定义此成员变量

4. 如果都没有就报错(不考虑父亲的父亲…) 子类能使用父类的内容

父类对象:只能访问父类拥有的变量 (父类不能访问子类信息)

1. 父类成员范围找

2. 如果都没有就报错(不考虑父亲的父亲…) 父类不能使用子类的内容

(同名变量的访问)

1默认访问子类自己的变量,如果必须强制访问父类的,使用supper.

2.父子类中成员变量有同名的情况 : super

3.super: 是一个关键字,建立在继承关系中用来使用父类资源的关键字。

4.this: 代表当前调用对象引用, 可以打印, this既可以访问自己的子类成员变量,也可以访问父类的成员

5.super: 代表当前调用对象的父类那部分空间的引用,不是一个对象,不能打印 当我们创建一个子类对象时,可以用super调用父类的属性

3.继承中成员方法的去向

子类对象:可以访问子父类中所用的成员方法(不包含私有)

1.子类成员范围找 优先也是现在自己类中找,有没有这个方法,有就用.

2.子类成员范围找 找不到就去父类中寻找,找到就用

父类对象:只能访问父类中拥有的方法

1. 父类成员范围找

2. 如果都没有就报错 无论是属性还是方法,子类可以继承使用父类的非私有的属性和方法,但是父类不能使用子类任何内容。

4.方法重写

继承体系 - 接口和实现类

子类对父类的同名方法的重新实现(子类中提供了一个和父类中一模一样方法声明),称之为方法的重写。 方法的重写需要使用注解 @Override 标注 注解@Override:用来检测当前的方法,是否是重写的方法

 重写的目的:都是为了增强父类方法的实现,父类方法实现不能满足子类的需求了,. 不修改源文件的情况,扩展一个子类,实现对父类的修改。

使用场景  当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类 保留父类的实现方式:super.父类方法(实参);

注意事项

1. 父类私有方法不能被重写 (子类看不到这个私有的方法)

2.子类方法访问权限不能更低(public > 默认 > private)

代码实现

 5.this与super使用总结

成员变量:

-this.成员变量 - 既可以访问本类成员变量,也可以访问父类的【this值默认从本类出发找】

-super.成员变量 - 只能访问父类成员变量

成员方法:

-this.成员方法 - 既可以访问本类成员方法,也可以访问父类的 【this值默认从本类出发找】

-super.成员方法 - 访问父类成员方法

构造方法:

-this(…) - 访问本类构造方法 this() --- 切记 特殊 只能访问本类

-super(…) - 访问父类构造方法 super()

 

 

相关推荐

相关文章