在“抽象”的关键字是强制性的声明抽象类。
我们不能使用new关键字直接创建抽象类的对象,在这种情况下,我们可以定义所有抽象方法以及new关键字。
抽象类的例子
//用抽象关键字声明一个抽象类 abstract class AbstractClass { //声明一个没有实现的抽象方法 abstract void printMethod(); } public class ImplementedClass { public static void main(String[] args) { //创建抽象类的对象 //以及方法的实现。 AbstractClass ac = new AbstractClass() { void printMethod() { System.out.println("Hi, We are in Java World"); } }; //调用抽象类方法 ac.printMethod(); } }
输出结果
D:\Programs>javac ImplementedClass.java D:\Programs>java ImplementedClass Hi, We are in Java World
注意:
一个抽象类可能会或可能不会包含抽象方法。
我们不能将抽象方法声明为final,因为如果我们将一个类声明为final,那么我们将需要实现所有方法,然后才可以实现这些方法。
我们并不需要前缀“抽象”在声明的具体类,如果我们包括“抽象的”类名之前的关键字那么它也将成为抽象的。
对于具体的类,我们可以使用new关键字直接创建此类的对象。
具体类示例
//用抽象关键字声明一个抽象类 abstract class AbstractClass { //声明一个没有实现的抽象方法 abstract void printMethod(); } //通过扩展抽象类定义具体类 class ConcreteClass extends AbstractClass { //实现抽象方法 void printMethod() { System.out.println("Hi,We are in Java World"); } } public class Main { public static void main(String[] args) { //直接使用new关键字创建具体类的对象。 ConcreteClass cc = new ConcreteClass(); //调用具体的类方法。 cc.printMethod(); } }
输出结果
D:\Programs>javac Main.java D:\Programs>java Main Hi,We are in Java World
注意:
对于具体类,它将不包含任何抽象方法,因为如果我们包含单个抽象方法,则该类将变为抽象。
对于具体类,我们可以将该类声明为final,因为它不包含抽象方法,因此需要关心实现。