extends:Java 中 继承(extends) 的方法和理解 2024-04-01 14:41:40 0 0 目录 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() 收藏(0)