-2

我是一名 Java 初学者,我通过阅读文章、书籍和观看 YouTube 视频来学习。最近我遇到了抽象类这两个术语,我真的不知道它们是否相同。似乎没有人真正对它们进行过比较。

我的问题是:它们是一样的吗?如果不是,有什么区别?谢谢!

4

6 回答 6

1

在这种情况下使用abstract类的原因是强制继承你的基类的每个人都重写抽象doInit方法。如果没有抽象的类和方法,它们可能会忘记这样做,编译器也不会捕捉到它们。

除了这个实用目的之外,抽象类还提供了一种强大的方式来将您的设计理念传达给代码的读者。抽象类告诉读者,其中的方法为一组相关类提供了一些通用实现,而不是实现您正在建模的单个概念。很多时候,向读者传达你的意图与编写正确的代码一样重要,否则他们可能会在维护代码的同时破坏某些东西。

在 Java 中习惯将抽象类称为 Abstract...;在您的示例中,这将是 AbstractParent。

public abstract class Parent {
    public void init() {
       doInit();
    }
    public abstract void doInit();
}

public class Child extends Parent {
    public void doInit() {
       // implementation
    }
}
于 2013-07-03T13:13:44.850 回答
1

Aclass和 aabstract class在微妙的方面有所不同。

Aclass可以被实例化并用作对象,而 aabstract class不能被实例化。

您使用 aabstract class来抽象公共类的某些行为。

也只有 aabstract class可以具有仅定义但未实现的抽象方法。实现是在abstract class.

还有更多的东西,但这对于一个简单的答案来说太多了。

于 2013-07-03T13:12:50.897 回答
0

抽象类是包含抽象方法的类。抽象方法是在没有实现的情况下声明的方法。看的好地方就 在这里

于 2013-07-03T13:14:11.207 回答
0

抽象类可以有抽象方法,但普通类不能有抽象方法。我们不能为抽象类创建对象。当我们继承抽象类时,我们应该实现我们继承的抽象方法。

于 2013-07-03T13:10:26.890 回答
0

一个类可以用来创建一个对象。抽象类不能用于创建对象。您必须扩展一个抽象类以使用它的属性或方法

于 2013-07-03T13:11:29.107 回答
0

抽象类不能直接实例化,必须子类化才能使用。请阅读文档以获取更多信息。

于 2013-07-03T13:12:10.450 回答