抽象类和接口

文章介绍了Java中的抽象类和抽象方法,强调了它们的特点和用途,如抽象方法无具体实现,抽象类不能实例化。接着,文章转向接口,解释了接口作为约定的角色,以及如何通过implements实现接口。接口支持多重继承,有助于代码解耦和复用,同时促进了多态性的实现。最后,文章提到了面向对象设计的原则,包括针对接口编程和代码的可扩展性。
摘要由CSDN通过智能技术生成
  • 第一部分:抽象类、抽象方法
    • 初识抽象类和抽象方法
      • 1. 区分普通方法和抽象方法
        • abstract 关键字修饰的方法,就是抽象方法
        • 当方法被定义为抽象方法后,该方法不会有具体的实现
        • 语法\\\\[ 访问修饰符 ] abstract < 返回类型 > < 方法名 > ( [ 参数列表 ] )
        • 普通方法和抽象方法的区别
          • 抽象方法需要用关键字 abstract 修饰,并没有方法体
          • 普通方法不需要关键字修饰,并有方法体
      • 2. 区分普通类和抽象类
        • abstract 关键字修饰的类,就是抽象类
        • 普通类和抽象类的区别
          • 抽象类需要用关键字 abstract 修饰,并不能被实例化,没有方法体
          • 普通方法不需要关键字修饰,并可以被实例化,有方法体
        • 抽象方法只能定义在抽象类中。但是抽象类中可以包含抽象方法,也可以包含普通方法和其中的一切成员
      • 抽象类和抽象方法的优势
        • 抽象类中已经实现的方法可以被其子类使用,使代码可以被复用\\\\为子类提供了抽象方法,保证了子类具有自身的独特性
      • 抽象类的局限性
        • 父类的方法不一定通用,因为子类的独特性\\\\子类继承父类抽象类时,写出来的方法可能会出现代码重复的情况
  • 第二部分:接口
    • 初始接口
      • 1. 生活中的接口
        • USB接口
        • Java中接口的作用和生活中的接口类似,它提供一种约定,使得实现接口的类在形式上保持一致
        • 如果抽象类中所有的方法都是抽象方法,就可以使用接口来表示
      • 2. 定义和实现一个简单的接口
        • 接口是一个不能实例化的类型,接口类型的定义类似于类的定义
        • 语法\\\\public interface 接口名 { // 接口成员 }
        • 和抽象类不同,定义接口使用 interface 修饰符,访问修饰符只能是 public ,且可选
        • 接口成员可以是全局常量和公共的抽象方法
        • 使用接口必须通过子类,通过 implements 关键字实现接口
        • 语法\\\\public 类名 implements 接口名 { 实现方法 普通方法 }
        • 实现接口的类必须实现接口中定义的所有抽象方法\\\\接口的实现类允许包含普通方法
      • 更复杂的接口
        • 接口本身也可以继承接口\\\\接口继承的语法\\\\[ 修饰符 ] interface 接口名 extends 父接口 1,父接口 2,......{ 常量定义 方法定义 }
        • 一个普通类只能继承一个父类,但能同时实现多个接口,也可以同时继承抽象类和实现接口\\\\实现多个接口的语法\\\\class 类名 extends 父类名 implements 接口 1,接口2,...... { 类的成员 }
        • 关于定义和实现接口,需要注意
          • 接口和类、抽象类是一个层次的概念,命名规则相同
          • 修饰符如果是 public,则该接口在整个项目中可见\\\\如果省略修饰符,则该接口只在当前包中可见
          • 接口中可以定义常量,不能定义变量\\\\接口中的属性都默认用 “public static final” 修饰,即接口中的属性都是全局静态常量\\\\接口中的常量必须在定义时指定初始值
          • 接口中的所有方法都是抽象方法,接口中的方法都默认为 public
          • 和抽象类一样,接口不能实例化,接口中不能有构造方法
          • 接口之间可以通过 extends 实现继承关系,一个接口可以继承多个接口,但接口不能继承类
          • 类只能继承一个父类,但可以通过 implements 实现多个接口\\\\一个类必须实现接口的全部方法。否则必须定义为抽象类\\\\若一个类在继承父类的同时又实现了多个接口,extends 必须在 implements 之前
          • 多个接口存在继承关系,如类实现最下面的子接口,那必须重写所有接口的抽象方法

      • 使用接口的优势
        • 实现多重继承:一个接口何以继承多个接口
        • 实现解耦:接口可以将实现与使用分离,降低了代码的耦合性
        • 提高可读性和可维护性:使得代码更加易于理解和维护
        • 促进代码复用:接口可以被多个类实现,减少代码的重复性
        • 支持多态性:接口可以被用作参数类型、返回值类型、变量类型

    • 面向对象设计的原则
      • 1、摘取代码中变化的行为,形成接口
      • 2、多用组合,少用继承
      • 3、针对接口编程,不依赖于具体实现
      • 4、针对扩展开放,针对改变关闭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值