我需要正确理解 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 中的抽象是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章