Java中的类有抽象类和普通类两种类型。接下来我们将会讨论这两种类的区别。
普通类是可以被直接实例化的,而抽象类则不能被实例化,只能被作为其他类的父类进行继承。普通类中提供了方法的实现,而抽象类中没有实现的方法需要子类去实现,也就是说,抽象类是为了被继承而存在的。
下面我们来看一下普通类和抽象类的定义:
public class NormalClass { public void sayHello(){ System.out.println("Hello World"); } }
public abstract class AbstractClass { public void sayHello(){ System.out.println("Hello World"); } public abstract void sayHi(); }
在上述代码中,普通类中已经有sayHello()方法的实现,而抽象类中除了sayHello()方法的实现,还有一个抽象方法sayHi(),需要在子类中重新实现。
在子类中继承抽象类时,必须要实现抽象类中的抽象方法,否则子类也必须是一个抽象类。下面是继承抽象类的例子:
public class SubAbstractClass extends AbstractClass{ public void sayHi(){ System.out.println("Hi World"); } }
在上述代码中,SubAbstractClass继承了AbstractClass抽象类,并实现了该类中的抽象方法sayHi(),所以该类可以被实例化。
总结来说,抽象类和普通类的主要区别在于抽象类不能被实例化,而抽象类中的抽象方法需要在子类中重新实现。因此,抽象类主要用于设计框架,约束子类的定义,而普通类则用于完成具体操作。