抽象类就像其他类的蓝图。您不能直接从抽象类创建对象。相反,您可以使用它作为其他类的基础,这些类可以在它的基础上构建并填写详细信息。
当您想要定义具有一些共享功能的一般概念,但您还想为在不同情况下可能有所不同的特定细节留出空间时,抽象类非常有用。例如,您可能对“动物”有一个一般概念,其中包括饮食或睡眠等常见特征,但不同的动物可能以不同的方式饮食或睡眠。
以下是创建名为 Animal 的抽象类的方法:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
在此示例中,makeSound() 是一个抽象方法,这意味着它还没有主体。然而 sleep() 方法已完全实现。
现在,让我们创建一些扩展 Animal 类的类:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
Dog 和 Cat 类都必须提供自己版本的 makeSound() 方法,但它们按原样继承 sleep() 方法。
当您有一些应在所有子类之间共享的方法,但您还想强制这些子类定义某些方法时,抽象类非常有用。
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
现在,任何扩展 Bird 的类都会继承 Animal 的 move() 方法和 sleep() 方法,但仍然需要实现 makeSound()。
Java 中的抽象类提供了一种为相关类创建共享基础的方法,同时为这些类留出了定义特定细节的空间。它们在共享功能和灵活性之间取得了平衡,使您的代码既强大又可重用。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3