如有错误欢迎指正
抽象类声明时必须用abstract关键字。例如
public abstract class example{
//...
}
抽象类中可以声明抽象方法,也必须用abstract关键字,抽象方法没有方法体。
public abstract class example{
//...
public abstract void fun();
}
抽象类中也可以有具体方法
public abstract class example{
//...
public abstract void fun();
public void hello(){
System.out.println("hello world")
}
}
总结:
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
抽象类中不一定包含抽象方法,但是有抽象方法的类必须用abstract声明成抽象类。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
在 Java 中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
如有错误欢迎指正