抽象类中可以包含非抽象方法。抽象类是一种特殊的类,它不能被实例化,而是被用作其他类的基类或父类。抽象类可以包含抽象方法和非抽象方法的定义。
抽象方法是在抽象类中声明但没有具体实现的方法,需要子类进行实现。子类必须提供具体的实现来满足抽象方法的要求。抽象方法使用 abstract 关键字进行声明。
非抽象方法是在抽象类中具有具体实现的方法。它们提供了一些默认的行为和功能,可以被抽象类直接使用,也可以在子类中被继承和重写。非抽象方法在抽象类中的定义和实现与普通类中的方法相似,不使用 abstract 关键字修饰。
下面是一个示例,展示了抽象类中包含抽象方法和非抽象方法:
在上面的示例中,AbstractClass 是一个抽象类。它包含了一个抽象方法 abstractMethod() 和一个非抽象方法 nonAbstractMethod()。子类继承 AbstractClass 时,必须实现抽象方法 abstractMethod(),但可以直接继承并使用非抽象方法 nonAbstractMethod()。
通过在抽象类中定义非抽象方法,可以为子类提供一些通用的实现逻辑,减少重复代码的编写。这样的非抽象方法在抽象类的继承体系中可以被多个子类共享,并且可以根据需要在子类中进行重写以提供特定的实现。