抽象类和普通类之间有以下区别:
-
实例化:
- 普通类可以直接实例化对象,而抽象类不能被实例化。抽象类只能作为父类被继承,子类可以实例化。
-
方法:
- 普通类可以包含普通方法和抽象方法,而抽象类可以包含抽象方法和普通方法。
- 抽象方法是没有实现的方法,必须由子类实现。普通方法有实现,可以直接被调用。
-
成员变量:
- 普通类可以包含成员变量和静态变量,而抽象类也可以包含这些变量。
-
继承:
- 普通类可以继承另一个普通类或抽象类,而抽象类只能继承自另一个抽象类或接口。
- 子类继承抽象类时,必须实现抽象类中的所有抽象方法,除非子类也是抽象类。
-
用途:
- 抽象类通常用于建模那些具有共同特征的对象,但又不能确定具体实现的类,例如动物类可以是抽象类,具体的动物如狗、猫则可以是普通类。
- 普通类则用于描述具体的对象,可以直接实例化使用。
以下是一个简单的示例代码,分别展示了抽象类和普通类的定义:
// 抽象类
abstract