Java基础知识-类的继承与抽象

继承

概念

  • 向上抽取共性,把相同的内容定义在父类中

什么情况下使用继承

  • 必须满足 is a 的关系

  • 什么 是 什么 的一种

好处

  • 子类可以使用父类除private修饰和构造方法以外的内容

  • 提高了代码的复用性

  • 让类与类之间产生了关系(父子类的关系)

  • 是多态的前提

定义

  • 关键字:extends

  • 格式:子类 extends 父类

成员变量的访问特点

  • 成员变量不重名

    • 子类有,用子类,没有,找父类

    • 子类可以找父类,父类不能找子类

  • 成员变量重名

    • 优先调用子类成员,子类没有调用父类

    • 就近原则

    • this(从本来成员位置开始向上找)/super(从父类成员位置开始向上找)

成员方法的访问特点

  • 不重名

    • 先找子类,没有找父类,优先使用子类自己的.

  • 重名

    • 称为方法重写/覆盖(返回值类型,方法名,参数列表都相同).

      • 可使用@Override朱姐检测子类方法是否对父类重写

      • 方法重写快捷键:Ctrl+o

    • 既沿袭了父类的功能名称,又可根据需要重新实现父类方法,从而进行扩展增强

    • 方法重写注意事项

      • 子类方法覆盖父类方法,访问权限必须等于或大于父类权限(public > protected > 默认(什么都不写) > private)

      • 返回值类型、函数名和参数列表都要一样,并且不能抛出更多的异常.

        • 必要条件:1.函数名和参数列表都要一样 2.子类不能抛出比父类更多的异常

        • 可选条件: 返回值类型可以不一样,子类覆盖重写后的方法返回值类型 <= 父类方法返回值类型

    - 私有方法不能被重写(父类私有成员子类是不能继承的) 

构造器的访问特点

  • 构造方法与类名相同,所以子类无法继承.

  • 子类创建对象调用构造方法时,必须先调用父类构造方法,完成父类成员的初始化动作,子类才可以使用父类的成员,super()表示调用父类的空参构造.

  • 子类的构造方法中,会在第一句默认提供super()调用父类的空参构造.

  • 构造方法可以重载,所以可以使用super(...)调用父类带参数的构造方法.

继承的特点

  • 只能单继承,不能多继承.(一个儿子,一个亲爹)

  • 继承能多层继承.(爷爷-爸爸-儿子···)

  • 一个父类可以拥有多个子类

抽象类

概念

  • 在类的设计中,把说不清楚的,不够具体的,但是子类要有的功能,在父类中声明为抽象方法,此时的类就必须是抽象类。父类具体无法实现的方法称为抽象方法,即父类不管,子类自己决定。

抽象类中抽象方法的存在意义

  • 强制要求子类必须具备的能力

关键字

  • abstract

定义

  • 抽象类:public abstract class 类名{}

  • 抽象方法:public abstract 返回值类型 方法名(参数);

    • 和普通方法定义一样,但是去掉{},添加abstract关键字.

    • 返回值类型,根据情况需求定义.

  • 抽象方法肯定是作为父类来使用.

注意

  • 抽象方法所在的类一定是抽象类.

  • 抽象类中不一定非得有抽象方法

  • 子类继承抽象父类之后,需要重写抽象方法

  • 抽象类不能new对象

  • 抽象类中可以有成员变量和构造方法.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值