我需要正确理解 Java 中的抽象是啥? [复制]

Posted

技术标签:

【中文标题】我需要正确理解 Java 中的抽象是啥? [复制]【英文标题】:What is Abstraction in Java i need to understand it properly? [duplicate]我需要正确理解 Java 中的抽象是什么? [复制] 【发布时间】:2021-11-28 21:13:12 【问题描述】:

我了解抽象的基础知识,但仍有一些不确定性。

    我们无法创建抽象类的 obj。 抽象方法在抽象类中声明,但在子类中定义。 我们使用子类的 obj 调用抽象方法。

如果我们可以通过子类的对象来做所有事情,我不明白为什么要使用抽象类。我们在子类中定义了抽象方法,这也意味着我们也在子类中声明了它,并且我们调用了该方法,使其像普通类和子类一样工作。

抽象类的实际用途是什么?

【问题讨论】:

看看List。或Map. 如果您发现自己创建了一个只有抽象方法且没有状态的抽象类,请考虑将其改为接口。 【参考方案1】:

从我从您的问题中可以看出,您将抽象类视为接口,但您可以并且应该以不同的方式使用它们。

抽象类中不能有抽象方法,即所有子类都使用超类方法的方法,这样可以避免重复代码。

您可以在这里查看解释:https://softwareengineering.stackexchange.com/questions/106601/in-simple-words-what-are-are-the-purposes-of-abstract-classes-and-or-interfaces

【讨论】:

以上是关于我需要正确理解 Java 中的抽象是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

c#中的行为抽象类和接口是啥? [复制]

在 Java 中创建日期的正确方法是啥? [复制]

Java泛型的类型参数中的问号是啥意思? [复制]

Mac上JDK的路径是啥? [复制]

C# 中的 void* 是啥? [复制]

java中的while(true)语句的用法是啥