接口与抽象类

本文总结了接口与抽象类的相关知识。介绍了抽象类的概念、作用和特点,以及子类继承的形式;阐述了接口的概念、设计原因、作用和特点,还说明了类与接口的实现关系。最后对比了接口与抽象类的异同,包括设计目的、方法、属性等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口与抽象类

接口与抽象类很相似,但也一定区别。这是我的第二篇博客,总结类接口与抽象类的相关知识。如果在博客中有错误,还请指出。

抽象类

  • 抽象类的概念:一个无法确定实现部分的方法,只能确定申明部分,此时不应该打上{ },而是直接书写申明部分然后“;”号结束。这种只有申明没有实现的方法,叫做:抽象方法。语法上,抽象方法由一个可选修饰符abstract修饰,而拥有抽象方法的类,必须用abstract修饰定义为抽象类。
  • 抽象类的作用:专门用来充当父类。
  • 抽象类的特点:
  1. 抽象类不产生对象,但是它还是必须有构造方法。它的构造方法不能单独使用,是由它的子类在产生子类对象的时候调用的。
  2. 抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类。
  3. 用abstract修饰的类是抽象类,用final修饰的类是最终类,抽象用来继承,而最终类不能被继承
  4. 子类继承抽象类有两种形式:1.实现父类全部的抽象方法。2.没有实现全部的抽象方法,将子类也用abstract修饰为抽象类。

接口

  • 接口的概念:抽象类是从多个类中提取出来的模板 ,而将这种抽象进行的更彻底,则可以提取出一种特殊的“抽象类”(接口)在接口中,只能有抽象方法不能有普通方法。接口名字往往是叫做****able,代表具有什么样的能力

  • 接口的设计原因:
    1、没有继承关系的类也可以有相同的行为。
    2、接口解决了单继承丰富度不够的问题

  • 接口的作用:

  • 暴露类的某些行为,允许类的用户通过接口的实现类来使用接口中的方法。

  • 强制一个类具有某些行为,比如:一个方法,参数列表只有一个接口类型的引用,那么能够传递进来的类一定是该接口的实现类,具备该接口的方法。

  • 接口的特点:
    1、公共接口的名字 必须 与它所在的java文件文件名一致
    2、接口的访问修饰符只能是public,就算不写也是默认为public而不是同包
    3、 接口可以继承接口,而且它可以多继承!
    4、接口的属性只能是公共静态常量属性,修饰符关键字全部可以省略,但省略后也是默认为公共静态常量的 。
    5、接口没有构造器不能产生对象。
    6、接口不能有初始化块,不管是实例还是静态初始化块
    7、接口里面只能有抽象方法,访问修饰符只能是public,可以省略public abstract,但是不写也会默认为公共抽象(JDK1.8,Java运行接口当中定义实现了的方法,虽然有这个功能,但是接口的最大的意义还是写抽象方法,让没有继承关系的类可以共享行为,但又可以各有各的实现!)

  • 接口与类的关系叫做:实现,一个类在申明的最后用implements关键字,后面跟上接口的名字即可。这个类就被称之为某某接口的实现类一个类可以在继承父类的同时,又实现接口!继承只能是单继承,但实现接口是多实现! 语法上:先写继承,再写实现,如果没有写继承则默认继承Object;

  • 类从接口中获取的方法会参与到继承中去.

  • 动态绑定的方式:动态绑定有两种方式
    方式一:父类的引用指向子类的对象,父类的引用只能看见对象上父类的部分
    方式二:接口的引用可以指向实现类的对象, 接口的引用只能看到对象身上来自于这个接口的行为

接口与抽象类的异同

  • 相识之处:
  1. 都不能被实例化 ,都是出于继承链的顶端,被继承或实现。
  2. 都包含抽象方法,实现接口或继承抽象类都必须实现全部的抽象方法。
  • 不同之处:
  1. 设计目的不同,接口通常作为系统与外界交互第一个窗口,体现规范性,而抽象类通常作为多个子类的共同父类,体现的是一种模板设计。
  2. 接口中只能有抽象方法,而抽象类中可以有普通方法。
  3. 接口不能有静态方法,抽象类可以定义静态方法
  4. 接口 中的属性只能定义为public static final 而抽象类中可以定义 普通属性,也可以定义静态属性。
  5. 接口中不能有初始化快,而抽象类中可以有
  6. 接口中不能含有构造方法,而抽象类中可以有,用于子类调用
  7. 一个类只继承一个父类,一个接口可以继承多个接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值