Java基础知识(五)--抽象类&接口

逃离我推掉我的手 2023-01-18 15:26 59阅读 0赞

微信公众号:Java患者
专注Java领域技术分享

抽象类

抽象类概述

  • 抽象类用来描述一种类型应该具备的基本特征与功能,具体如何去完成这些行为由子类通过方法重写来完成.

抽象类特点

  • 抽象类和抽象方法必须用abstract关键字来修饰
  • 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
  • 抽象类不能实例化,那么抽象类如何实例化?
    • 按照多态的方式,由具体的子类实例化.其实这也是多态的一种,抽象类多态.
  • 抽象的子类
    • 要么是抽象类
    • 要么重写抽象类中的所有抽象方法

抽象类的成员特点

  • 成员变量 : 既可以是变量,也可以是常量.abstract是否可以修饰成员变量?不能修饰成员变量
  • 构造方法 : 有
    • 用于子类访问父类数据的初始化
  • 成员方法: 既可以是抽象的,也可以是非抽象的.

抽象类的成员方法特性

  • 抽象方法: 强制要求子类做的事情
  • 非抽象方法: 子类继承的事情,提高代码复用性
  • abstract不能和哪些关键字共存
    • private : 因为一个abstract方法需要被重写
    • final: 因为一个abstract方法需要被重写,被final修饰的方法是不能被重写的
    • static : 因为一个abstract方法没有方法体.静态方法需要对方法体执行内容分配空间(abstract是没有实现的,不能产生对象,而static是属于类的,类本身是已经存在的对象)
    • synchronized : 是同步的,然而同步需要具体的操作才能同步(即使用synchronized 关键字是需要有具体的实现同步的操作的)
    • native: 他们本身的定义就是冲突的.native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法.

接口

接口概述

  • 从狭义的角度讲就是指java中的interface
  • 从广义的角度讲对外提供规则的都是接口

接口特点

  • 接口不能实例化
    • 按照多态的方式来实例化
  • 接口的子类
    • 可以是抽象类,但是意义不大
    • 可以是具体类,要重写接口中所有抽象方法

接口的成员特点

  • 成员变量 : 只能是常量,并且是静态的跟公共的
    • 默认修饰符 : public static final
  • 构造方法 : 接口没有构造方法
  • 成员方法:只能是抽象方法
    • 默认修饰符: public abstract

资料 · 福利

回复 【Java】即可获取最新零基础Java视频资料

回复 【激活】即可获取IDEA、datagrip等系统激活方式

回复 【面试题】即可获取Java技术相关面试题

往期 · 精彩

专注分享Java技术,跟我一起学习吧

长按识别二维码关注

19fca96bd0230dd4897186c7af5fc936.png

2d48ae909f381f8ed7651e8ae754ce9d.png

发表评论

表情:
评论列表 (有 0 条评论,59人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java基础(13)抽象接口

    抽象类是不能被实例化的类。它们通常被用作基类,在其中声明(或部分实现)子类应该遵循的通用方法和属性。抽象类允许你定义一些方法作为抽象方法,这些方法没有具体的实现,而是留给...

    相关 Java基础——抽象接口

    一、抽象类(强制子类覆写方法) 抽象类是普通类的“超集”,只是比普通类多了一些抽象方法而已(抽象方法个数:0-N) 抽象方法所在的类必须是抽象类,子类若是继承了抽象类,必须