Java抽象类和接口

抽象类的定义和使用

抽象类只是比普通类多一些抽象方法,所谓的抽象类就是指声明二为实现的方法(没有方法体),所有抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来 定义,表示抽象类

抽象类的使用原则

  1. 所有的抽象类必须有子类
  2. 抽象类的子类必须覆写抽象类的所有抽象方法,否则子类也为抽象类
  3. 抽象类的实例化可以通过对象多态性利用子类为其实例化
  4. private和abstract不能同时使用

抽象类的相关规定

  • 抽象类也允许提供构造方法,并且子类照样遵循对象实例化流程,实例化子类一定先调用父类的构造方法
  • 如果父类没有无参构造,那么子类必须使用super明确指出使用父类那个构造方法
  • 抽象类中允许不定义任何的抽象方法,但是此时抽象类依然无法直接创建实例化对象
  • 抽象类一定不能使用final声明,因为使用final声明的类不允许有子类;而抽象类必须有子类;相应的,抽象 方法也不能使用private定义,因为抽象方法必须要能被覆写
  • 抽象类也分为内部抽象类和外部抽象类。内部抽象类中也可以使用static定义来描述外部抽象

接口的定义与使用

抽象类与普通类相比最大的特点是约定了子类的实现要求,但是抽象类存在单继承局限,如果既要约定子类的实现,又要避免单继承局限就要使用接口

接口的基本概念

接口定义:接口就是抽象方法和全局常量的集合,在Java中接口使用interface关键字定义

子类如果要想使用接口,那么就必须使用implements关键字来实现接口,同时,一个子类可以实现多个接口

可以使用接口来实现多继承的概念,对于接口的子类(不是抽象类)必须覆写接口中的全部抽象方法。随后可以 利用子类的向上转型通过实例化子类来得到接口的实例化对象

接口使用的限制

  • 接口中只允许public权限,其中public abstract可省略
  • 当一个子类即需要实现接口又需要继承抽象类时,请先使用extends继承一个抽象类,而后使用implements 实现多个接口
  • 一个抽象类可以使用implements实现多个接口,但是接口不能继承抽象类
  • 一个接口可以使用extends继承多个父接口
  • 接口可以定义一系列的内部结构,包括:内部普通类,内部接口。其中,使用static定义的内部 接口就相当于一个外部接口

接口的应用

  1. 定义操作标准
  2. 标识能力
  3. 在分布式开发中暴露远程服务方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值