前言接口和抽象类提供了一种更加结构化的方法来分离接口和实现。抽象类Java提供了一种称为抽象方法的机制,它是不完整的:它只有语句,没有方法体。下面是抽象方法的声明语法:abstractvoidf();包含抽象方法的类称为抽象类。如果一个类包含一个或多个抽象方法,那么这个类本身也必须被限定为抽象的,否则,编译器会报错。abstractclassUser{abstractvoidf();}创建抽象类和抽象方法使类的抽象性变得清晰,并将意图告知用户和编译器。抽象类也是一种有用的重构工具,使用它们可以轻松地将公共方法向上移动到继承层次结构中。接口是使用interface关键字创建的。publicinterfaceUser{voidf();}多重继承Java只能继承一个类(或抽象类),但可以实现任意数量的接口。因为接口中不允许有属性(只能是静态属性,不适用),属性仍然只会来自单个基类或抽象类,即不会存在状态的多重继承。//多重继承接口One{defaultvoidfirst(){System.out.println("first");}}interfaceTwo{defaultvoidsecond(){System.out.println("second");}}interfaceThree{defaultvoidthird(){System.out.println("third");}}classMI实现一、二、三{}抽象类和接口。令人困惑的是,抽象类仍然是一个类,只有在创建新类时才能继承它。在创建一个类的过程中,可以实现多个接口。下表明确区分:特性接口抽象类组合new类可以组合多个接口只能继承单个抽象类状态不能包含属性(静态属性除外,不支持对象状态)可以包含属性,非抽象方法可以参考这些Property默认方法,抽象方法不需要在子类中实现默认方法。默认方法可以引用其他接口的方法,必须在子类中实现。构造函数没有构造函数。它可以具有构造函数可见性。可以保护隐式公共或朋友。综上所述,接口是一个不错的选择,所以使用接口而不是具体类,这很诱人。几乎任何时候,创建类都可以代替创建接口。正确的原则是优先使用类而不是接口。从类开始,如果使用接口的需求变得清晰,那么重构。接口是一个很棒的工具,但它们很容易被滥用。最后一篇为初学者提供学习指南,对从业者有参考价值。我坚信编码员也有能力产生洞察力。扫描下方二维码关注、学习、交流!
