赞
踩
目录
继承是面向对象三大特征之一,继承会产生父子类, 可以使得子类具有父类的属性。
比如:A继承B,A就是子类,B就是父类,A可以不定义父类出现的内容,也可以定义,还可以添加自己类中独特的属性。
总结: 继承就是让两个类之间产生关系,这种关系就是继承关系.
继承的实现: 继承通过关键字 extends 实现的,具有自己固有的格式 格式: 修饰符 class 子类 extends 父类 {}
案例实现
首先定义一个Animal类,定义属性和行为
在创建一个Cat类 Cat类 继承 Animal类
创建一个测试类,实例化 子类Cat 发现可以调用父类的属性,与行为,说明子类继承了父类的属性和方法
输出结果
(不同命变量的访问)
父子类中成员变量没有同名的情况时,不冲突(直接使用)
子类对象:调用范围
1.可以访问子父类中所有的非私有的成员变量
2. 子类成员范围找: 找有没有成员变量
3. 父类成员范围找: 找父类有没有定义此成员变量
4. 如果都没有就报错(不考虑父亲的父亲…) 子类能使用父类的内容
父类对象:只能访问父类拥有的变量 (父类不能访问子类信息)
1. 父类成员范围找
2. 如果都没有就报错(不考虑父亲的父亲…) 父类不能使用子类的内容
(同名变量的访问)
1默认访问子类自己的变量,如果必须强制访问父类的,使用supper.
2.父子类中成员变量有同名的情况 : super
3.super: 是一个关键字,建立在继承关系中用来使用父类资源的关键字。
4.this: 代表当前调用对象引用, 可以打印, this既可以访问自己的子类成员变量,也可以访问父类的成员
5.super: 代表当前调用对象的父类那部分空间的引用,不是一个对象,不能打印 当我们创建一个子类对象时,可以用super调用父类的属性
子类对象:可以访问子父类中所用的成员方法(不包含私有)
1.子类成员范围找 优先也是现在自己类中找,有没有这个方法,有就用.
2.子类成员范围找 找不到就去父类中寻找,找到就用
父类对象:只能访问父类中拥有的方法
1. 父类成员范围找
2. 如果都没有就报错 无论是属性还是方法,子类可以继承使用父类的非私有的属性和方法,但是父类不能使用子类任何内容。
继承体系 - 接口和实现类
子类对父类的同名方法的重新实现(子类中提供了一个和父类中一模一样方法声明),称之为方法的重写。 方法的重写需要使用注解 @Override 标注 注解@Override:用来检测当前的方法,是否是重写的方法
重写的目的:都是为了增强父类方法的实现,父类方法实现不能满足子类的需求了,. 不修改源文件的情况,扩展一个子类,实现对父类的修改。
使用场景 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类 保留父类的实现方式:super.父类方法(实参);
注意事项
1. 父类私有方法不能被重写 (子类看不到这个私有的方法)
2.子类方法访问权限不能更低(public > 默认 > private)
代码实现
成员变量:
-this.成员变量 - 既可以访问本类成员变量,也可以访问父类的【this值默认从本类出发找】
-super.成员变量 - 只能访问父类成员变量
成员方法:
-this.成员方法 - 既可以访问本类成员方法,也可以访问父类的 【this值默认从本类出发找】
-super.成员方法 - 访问父类成员方法
构造方法:
-this(…) - 访问本类构造方法 this() --- 切记 特殊 只能访问本类
-super(…) - 访问父类构造方法 super()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。