Java接口和抽象类

抽象
抽象方法和抽象类都需要用abstract去进行声明
抽象方法只需要声明不需要实现 实现是由子类去进行实现 如果子类不是抽象类则需要实现父类所有的抽象方法 子类是抽象类时可以继续声明成抽象方法
抽象类必须要被子类继承 且 抽象方法不可以使用new关键字去进行实例化
抽象和继承的区别 抽象一定要写父类的抽象方法 而继承可以有选择地实现父类的方法
抽象使用abstract修饰的方法没有方法体
普通类中不允许含有抽象方法
抽象类中可以有普通类中相同的属性 方法 构造块 还有抽象方法
抽象抽出的是事物的本质 比如人 但是人又分为不同的种族 或者 游戏英雄 判断英雄是否能偶攻击 不同的英雄有不同的攻击方法…

接口
接口是一种跟类相似的结构
接口只含有常量和抽象方法
接口的目的是指明相关或者不相关类之间的共同行为。
不可以使用new关键字进行实例化 声明接口需要使用interface关键字 实现接口的类需要使用 implements去继承接口
接口中的数据域是public static final(默认可省略) 方法为 public abstract
在jdk8之后允许使用default修饰在接口中实现一些简单的功能

                      接口是特殊的抽象类

接口的优点:使设计和实现完全分离、能够更自然地使用多态、可以更加容易的实现程序框架搭建、更容易更换实现

接口和抽象类的比较

区别
接口
抽象类
定义关键字
interface
abstract class
组成
全局常量、抽象方法
常量、变量、抽象方法、普通方法、构造方法
权限
只能是public
可以使用各种权限
关系
接口不能够继承抽象类可以继承多接口
一个抽象类可以实现多个接口
使用
子类使用implements实现接口
子类使用extends继承抽象类
局限
一个子类可以实现多个接口
一个子类只能够继承一个抽象类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值