Ash*_*wal 22 java class abstract
我理解为什么我们需要Java中的Abstract Class - 来创建子类.但同样可以通过具体的课程来实现.例如,Child Child扩展Parent.在这里,父母可以很好地抽象和具体.那么为什么我们有抽象?
Pau*_*sik 51
抽象类无法直接实例化.将类声明为抽象意味着您不希望它被实例化,并且该类只能被继承.您在代码中强制执行规则.
如果你进一步扩展你的父/子关系例子以包含一个Person类,那么Person是抽象的很有意义.父母是一个具体的想法,孩子也是.人是现实中以及代码中的抽象概念.
一个好处是您明确定义和保护抽象类的想法.当您将类声明为抽象时,您或其他任何使用您的代码的人都无法通过实例化错误地使用它.这种推理类似于我们将函数和字段指定为public,private或protected的原因.如果您将一个函数或成员声明为私有,则实际上是保护它免受来自客户端代码的不正当访问.私有化意味着在课堂上使用,就是这样.抽象类意味着继承,就是这样.
现在,您是否必须使用抽象类并将函数和字段定义为私有而不是公共?不,你没有.但是提供这些概念是为了帮助保持代码清洁和组织良好.根据我的知识,抽象类以所有面向对象的语言实现.如果你环顾四周,你会看到C++,C#,VB.NET等都使用这个概念.
一个更好,更具体的例子:

在上面的例子中,Shape类应该是抽象的,因为它本身没有用.
抽象类意味着抽象不完整.它需要另一个类来完成它和/或它的功能.您需要扩展抽象类.它对某些类有用,例如.水果所有水果都具有相同的颜色属性.但是你可以为不同的水果提供不同的属性,例如橙子或者不是水果,例如香蕉等.