Java继承的详解及案例

闲来无事复习一下哈哈哈哈哈

继承概念
继承概念

一个类不用自己定义属性和方法,就已经具备了以一个类的属性和方法

如何产生继承关系

//extends 关键字
class Sub extends  Super{

}

继承特点及好处
继承特点&好处

a. 提高代码重用性能
b. 提高代码扩展性能和维护性
c. 为多态打下基础

特点

a. 子类继承了父类所有属性和方法,只是私有的不能直接访问而是通过公共的方法访问比如getName() setName()方法
b. 子类不能继承父类构造器(类似初始化的方法)
c. 不能滥用继承,子类和父类必须有一个is-a的关系
d. java直接继承只能是单继承
e. 子类的继承不限与直接父类
f. java中所有类直接或者间接继承了Object类

子类构造器特点
因为子类只继承了父类的成员&方法, 子类没有继承到父类的构造器,但是要求子类必须调用父类构造器

如果父类没有无参构造器子类创建时候会报错
a. 调用子类的无参&无参构造器,实际也默认先调用了父类的无参构造器
b. 如果父类没有无参构造器,子类必须显示的先调用父类的有参数构造器
//这里引出了super关键字 代表父类的引用
super("color", "name");

super关键字的特点&使用

super:父类的引用,用于访问父类的属性,方法,构造器
语法
访问父类的属性: super.属性名=属性值
访问父类的方法:super.方法(实参列表)
访问父类的构造:super(实参列表)
 子类需要显示调用父类的构造器时候,必须通过super关键字
 当前类的成员和父类的成员重名时候,使用super关键字区分
 super关键字的访问不限与直接父类,可以访问"爷爷辈"
 如果直接父类和间接父类(爷爷类)有相同的成员,super采用就近原则,默认访问的是父类的成员
 super指父类引用,没有创建父类对象

super关键字&this 关键字的对比

 1. this代表当前类对象, super是父类的引用,有点类似父类的指针
 2. 在子类中,this和super可以访问的成员不一样,如下图
 3. 注意this 和super不能出现一个构造器中,二者只能出现一个
 4. this 和super 使用语法一样,而且必须放在构造器首行

在这里插入图片描述
在这里插入图片描述
子类对象的创建过程

  1. 子类对象创建时,先加载子类及其直接&间接父类
  2. 初始化对象
    整个过程如下图:
    在这里插入图片描述
    方法的重写&重载
    子类方法覆盖父类的方法为重写
    方法的重写的要求
发生在父子类之间
方法名和参数列表必须相同
返回值类型相同或者子类方法的返回值为父类方法返回值的子类(jdk5之前返回值必须相同)
子类的方法修饰符和父类相同或者比父类的大

方法的重载

方法的重写和重载发生在同一个类中
方法名必须相同,参数列表必须不同
方法重载和返回值无关
修饰符没要求

二者对比
在这里插入图片描述

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值