Java抽象类与普通类有以下区别:
1. 实例化:抽象类不能被实例化,即不能创建抽象类的对象,而普通类可以被实例化。
2. 继承:子类继承抽象类时,必须实现抽象类中的所有抽象方法,或者子类也声明为抽象类,而普通类的继承没有这个限制。
3. 方法:抽象类可以包含抽象方法和非抽象方法,普通类只能包含非抽象方法。
4. 特性:抽象类是用来作为其他类的基类,它不能直接使用,而普通类是用来创建对象的。
5. 多态性:抽象类可以作为多态的类型,即可以用抽象类的引用变量指向其子类的对象,而普通类不具备这个特性。
总的来说,抽象类主要用于定义子类的共同行为和属性,强制子类进行实现;而普通类则用于创建对象和封装具体的业务逻辑。