接口(interface)与抽象(abstract)函数
Java 接口与抽象函数1. 接口Interface1.1 接口的定义与声明接口是 Java 中一种完全抽象的类用于定义一组方法规范但不提供具体实现。接口通过interface关键字声明。同时接口也是一种方法不能继承不能有子类。// 定义一个接口publicinterfaceAnimal{// 接口中的方法默认是 public abstract 抽象函数的voideat();voidsleep();voidbreathe(){System.out.println(动物在呼吸);}voidshowInfo(){System.out.println(这是一个动物接口);}}1.2 接口的特点完全抽象接口中的方法默认都是public abstract的类与接口不能继承extends只能实现多实现一个类可以实现多个接口常量定义接口中的变量默认是public static final的无构造方法接口不能有构造方法接口不能实例化只能对实现接口的子类进行实例化静态方法可以直接通过接口名调用1.3 接口的实现类使用implements关键字实现接口必须实现接口中的所有抽象方法除非是抽象类。// 实现接口publicclassDogimplementsAnimal{Override//重写publicvoideat(){System.out.println(狗在吃狗粮);}Overridepublicvoidsleep(){System.out.println(狗在睡觉);}}// 多接口实现publicclassSmartDogimplementsAnimal,Pet{// 必须实现两个接口的所有抽象方法}2. 抽象函数与抽象类2.1 抽象函数Abstract Method抽象函数是只有声明没有实现的方法使用abstract关键字修饰。// 抽象函数示例publicabstractvoidmakeSound();2.2 抽象类Abstract Class抽象类是包含抽象方法的类使用abstract关键字声明。抽象类不能被实例化。// 定义一个抽象类publicabstractclassVehicle{// 抽象方法publicabstractvoidstart();publicabstractvoidstop();// 具体方法publicvoidhonk(){System.out.println(车辆鸣笛);}// 构造方法抽象类可以有构造方法publicVehicle(Stringbrand){this.brandbrand;}privateStringbrand;}2.3 抽象类的继承子类继承抽象类时必须实现父类中的所有抽象方法除非子类也是抽象类。// 继承抽象类publicclassCarextendsVehicle{publicCar(Stringbrand){super(brand);}Overridepublicvoidstart(){System.out.println(汽车启动);}Overridepublicvoidstop(){System.out.println(汽车停止);}}3. 接口 vs 抽象类3.1 主要区别特性接口抽象类关键字interfaceabstract class方法实现默认无实现可以有具体方法变量只能是常量可以有普通变量构造方法不能有可以有继承多继承实现多个接口单继承访问修饰符默认 public可以是任意设计目的定义行为规范提供部分实现3.2 使用场景使用接口的场景需要定义一组行为规范需要实现多重继承需要定义回调机制需要实现松耦合设计使用抽象类的场景多个类有共同的代码逻辑需要控制子类的访问权限需要定义非静态、非 final 的字段需要提供构造方法4. 总结接口和抽象函数是 Java 面向对象编程的重要概念。接口主要用于定义行为规范支持多继承抽象类用于提供部分实现支持代码复用。在实际开发中应根据具体需求选择合适的方式通常优先考虑接口以实现松耦合设计。Java 8 引入的默认方法、静态方法和函数式接口进一步增强了接口的能力使代码更加灵活和简洁。

相关新闻

最新新闻

日新闻

周新闻

月新闻