淘先锋技术网

首页 1 2 3 4 5 6 7

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(),所以该类可以被实例化。

总结来说,抽象类和普通类的主要区别在于抽象类不能被实例化,而抽象类中的抽象方法需要在子类中重新实现。因此,抽象类主要用于设计框架,约束子类的定义,而普通类则用于完成具体操作。