提示信息

java 中,abstract 类和普通类有什么区别?

忧郁如你 已关注

在Java中,抽象类(abstract class)和普通类有以下主要的区别:

  1. 实例化:普通类可以直接实例化,而抽象类不能被直接实例化。你只能实例化一个抽象类的非抽象子类。

  2. 抽象方法:抽象类可以声明抽象方法(没有具体实现的方法,只有方法签名),普通类则不能。任何继承抽象类的子类都必须提供抽象方法的具体实现,除非该子类也是抽象类。

  3. 完整性:抽象类常常代表一种“不完整”的类型,它可能含有一些未完全定义的行为(即抽象方法)。然而,普通类必须是完整的,需要实现所有的方法。

例如:

  1. public abstract class Animal {
  2. public abstract void makeSound(); // 抽象方法
  3. }
  4. public class Dog extends Animal {
  5. @Override
  6. public void makeSound() { // 提供抽象方法的具体实现
  7. System.out.println("Woof");
  8. }
  9. }

其中Animal是一个抽象类,有一个抽象方法makeSound()。Dog是一个普通类,它继承自Animal,并且提供了makeSound()方法的具体实现。你不能创建一个Animal的实例,但可以创建一个Dog的实例。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
忧郁如你 关注 已关注

最近一次登录:2024-01-18 17:00:33   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图