java学习笔记17——接口

本文详细介绍了接口和抽象类的区别,包括它们的定义、语法、特点以及在实际编程中的应用。重点阐述了接口仅包含抽象方法,而抽象类可以包含普通方法,并讨论了它们在软件设计中的作用。

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

  接口比抽象类更抽象。不用class关键字而是用interface,定义的是多个类共同的公共行为规范。抽象类里不光有抽象方法还有普通方法,而接口里所有方法都是抽象方法,不能包含普通方法。
         [修饰符] interface 接口名 extends 父接口1,父接口2……
        {
  零到多个常量定义……
  零到多个抽象方法定义……
        }
        1、修饰符可以是public或者省略,如果省略了public访问控制符,则默认采用包权限访问控制符,即只有在相同包结构下才可以访问该接口。
        2、接口名应与类名采用相同的命名规则。
        3、一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。java类只能有一个直接父类。
        一个类可以实现一个或多个接口,继承使用用extends实现用implements
        [修饰符]  class 类名 extends 父类 implements 父接口1,父接口2……
        {
类体部分
        }
        一个类实现接口后,必须完全实现接口所定义的全部抽象方法,否则,这个类就要保留从父接口哪里继承到的抽象方法,这个类也就该被定义为抽象类。因为接口中定义的方法都是抽象方法,所以只要没有全部实现,那么类将继承到抽象方法,从而这个类也就应该被定义为抽象类。
        接口类似于整个系统的”总纲“,它指定了系统各个模块应该遵循的标准;抽象类作为系统中多个子类的共同父类,所体现的是一种模板式设计,抽象类作为多个子类的抽象父类,可以被当成系统实现过程中的中间产品,这个中间产品已经实现了系统的部分功能(那些已经提供实现的方法),但这个产品不能当成最终产品,必须有更进一步的完善。
        接口和抽象类的差别:
        1、接口里只能包含抽象方法,不能有已经提供实现的方法;抽象类则完全可以包含普通方法。
        2、接口里不能定义静态方法,都是public abstract修饰的;抽象类可以定义静态方法。
        3、接口只能定义静态常量成员变量,用public static final修饰,不能定义普通成员变量;抽象类可以定义普通成员变量也可以定义静态常量成员变量。
        4、接口不包含构造器;抽象类可以包含构造器,但并与用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
        5、接口不能包含初始化块;抽象类可以包含初始化块。
        6、一个类最多一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补java单继承的不足。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值