【Java】Java继承详解,看这一篇就够了

Java继承详解,看这一篇就够了

面向对象三大特征:

  • 封装
  • 继承
  • 多态

继承是面向对象的三大特征之一

继承概念:

  1. 从已有类派生出新的类
  2. 已有类称为父类(基类/超类),新类称为子类(派生类)
  3. 子类对于父类的关系就是继承

继承作用:

  1. 如果多个类有共同的成员变量和成员方法,将他们抽取到另一个类(父类)中,再让多个类去继承这个父类,这些子类就可以获取到父类的成员变量和成员方法。

继承使用extends关键字:

  1. 作用:子类继承父类时使用
  2. 定义位置: 子类类名后
  3. 格式: 权限修饰符 class 子类类名 extends 父类类名{}

继承的特点:

Java中类的继承的特点:

  • 只支持单继承,不支持多继承
  • 支持多层继承
  • 注意:Java中所有类都直接或间接的继承自Object类

继承关系中成员变量的特点:

继承中成员变量的特点:
  • 子类只能获取父类的非私有成员
  • 就近原则(同名局部变量,本类变量,父类变量的使用顺序)
    • 有局部变量则使用局部变量
    • 没有局部变量,则使用本类成员变量
    • 没有局部变量和本类成员变量,使用父类成员变量
    • 没有局部变量,本类成员变量和父类成员变量,则报错
子类父类中存在同名成员变量或方法时,如果区分使用?
  • this:使用本类中成员方法或变量,this.name
  • super:使用父类中的成员方法或变量 super.name

继承关系中成员方法的特点

方法的重写

override,重写,重新编写,也叫做覆写,覆盖
在继承关系中,子类的一个方法和父类的一个 方法声明完全一样(权限要大于等于),则认为子类重写了父类的这个方法

此时子类调用该方法时调用的时子类中自己重写后的方法,而不是父类中的方法

重写的特点:

子类对象调用一个方法时:

  • 子类中重写了这个方法,则调用子类的重写方法
  • 子类 中没有这个方阿飞,则调用父类的
  • 父类中如果没有,报错
方法重写(override)与方法重载(overload)的区别?
  • 定义位置不同:
    • 重载: 同一个类中
    • 重写: 存在继承关系的子父类当中
  • 方法定义不同:
    • 重载: 方法名相同, 参数列表不同. 与返回值, 形参名, 方法体无关
    • 重写: 方法声明完全一模一样(权限要大于等于), 与方法体无关

方法冲写的应用场景和注意事项

方法重写应用场景:
  • 当父类的方法不能完全满足子类使用,这是子类可以重写父类的方法
  • 在重写方法中使用super.方法名()调用父类方法,既可以保留父类方法功能,也能实现自身特有 功能
@Override注解
  • 用于约束被注解的方法必须是重写父类的方法,如果父类没有这个方法则报错
  • 注意字母O是大写
方法重写注意事项:
  • 父类private方法不能重写
  • 子类重写 方法的权限必须大于等于父类方法的权限

this和super的区别

this

关键字作用:当前类的对象的引用
语句作用

  • 调用子类的成员变量
  • 调用 子类的成员方法
  • 在子类构造方法第一行调用子类的其他构造方法:this();
  • 当子类没有父类的某个成员变量或成员方法时,this也可以调用父类的成员变量或成员方法(因为子类继承了父类成员)
super

关键字总用:当前类的对象的父类的引用
语句作用:

  • 调用父类成员变量
  • 调用父类成员方法
  • 在子类构造方法第一行调用父类的构造方法super();
    注意:this()和super()用于调用构造方法时,必须在构造方法第一行调用

继承的优缺点

优点

  • 提高了代码复用性
  • 提高代码可维护性

缺点:

类的耦合性增加

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GengMS_DEV

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值