抽象类与接口

抽象类和抽象方法:

抽象方法格式:abstract void f();//仅声明而没有方法体

抽象类:包含抽象方法的类,如果一个类包含一个或多个抽象方法,该类必限定为抽象的

抽象类和普通类的区别:

  1. 抽象方法必须为public或protected或缺省
  2. 抽象类不能创建对象,即不能实例化
  3. 如果一个类继承于抽象类,则子类必须实现父类的抽象方法(所有),如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类

接口:

接口中可以含有变量或方法,接口中的变量被隐式地指定为public static final类型的,方法被隐式地指定为public abstract类型的(用其他关键字如private,protected,static,final均报错),并且接口中的方法不能有具体的实现,均为抽象类型

如果一个类(非抽象)遵循某个接口,就必须实现该接口的所有方法

对于遵循某个接口的抽象类,可以不用实现接口中的抽象方法(所有)

抽象类与接口的区别:

  1. 语言层面:

    ​​​​​​​1:抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract的方法

    2:抽象类中成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的

    3:抽象类中可以有静态代码块或者静态方法,而接口中不能有

    4:一个类中能继承一个抽象类,但却可以实现多个接口

  2. 设计层面:

抽象类是对一种事物的抽象,即对类的抽象,而接口是对行为的抽象(例子:将飞行的行为设计为接口,将鸟和飞机设计为抽象类)

抽象类是一种模板式的设计(如果为抽象类再添加一个方法,则无需修改继承抽象类的类),接口是一种行为规范,是辐射式设计(如果接口中添加一个新方法,则要修改所有实现该接口的类)(可以将固有的行为设计为抽象类,附加的行为设计为接口)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值