Java 为什么我们要创建一个抽象类,即使该类的所有方法都已定义?
为什么我们要创建抽象类,即使该类的所有方法都已定义?Java 为什么我们要创建一个抽象类,即使该类的所有方法都已定义?,java,Java,为什么我们要创建抽象类,即使该类的所有方法都已定义? 如果答案是阻止程序员创建该类的对象,我们不能通过使用私有构造函数来实现同样的目标吗?抽象类的概念是许多其他类的共同基础 想想“动物”。。你不能创造一种叫做“动物”的东西 猫、狗和兔子都是动物 你有一个抽象类叫做“Animal”,然后你有一个类叫做Cat扩展了Animal,或者叫做Dog扩展了Animal。。。但是您不能直接实例化类“Animal”,因为它只是一个公共基础。抽象类的概念是许多其他类的公共基础 想想“动物”。。你不能创造一种叫做“
如果答案是阻止程序员创建该类的对象,我们不能通过使用私有构造函数来实现同样的目标吗?抽象类的概念是许多其他类的共同基础 想想“动物”。。你不能创造一种叫做“动物”的东西 猫、狗和兔子都是动物
你有一个抽象类叫做“Animal”,然后你有一个类叫做Cat扩展了Animal,或者叫做Dog扩展了Animal。。。但是您不能直接实例化类“Animal”,因为它只是一个公共基础。抽象类的概念是许多其他类的公共基础 想想“动物”。。你不能创造一种叫做“动物”的东西 猫、狗和兔子都是动物
你有一个抽象类叫做“Animal”,然后你有一个类叫做Cat扩展了Animal,或者叫做Dog扩展了Animal。。。但是您不能直接实例化类“Animal”,因为它只是一个公共基。抽象类只会阻止该特定类被实例化。子类仍然允许实例化 没有非私有构造函数的类可以防止子类化和公共实例化
从上面你可以看到这两件事有两个不同的目的。一个类可以有一个属性,甚至两个属性。一个抽象类只会阻止该特定类被实例化。子类仍然允许实例化 没有非私有构造函数的类可以防止子类化和公共实例化
从上面你可以看到这两件事有两个不同的目的。一个类可以有一个属性,甚至可以有两个属性。在抽象类中,您可以定义许多类所共有的常量。在抽象类中,您可以定义许多类所共有的常量。如果您有一个只包含静态方法的类,您可以抽象它,因为不需要实例化它。我至少可以考虑实用程序或帮助程序类。如果你有一个只包含静态方法的类,你可以抽象它,因为不需要实例化它。我至少可以考虑实用程序类或助手类。创建一个类作为
抽象类的设计模式,即使定义了所有方法,也是在抽象类具有“不做任何事情”或方法的异常抛出实现时使用的
我们可以在类中看到这一点,它为每个web方法(doGet()
,doPost()
,doPut()
和doDelete()
)提供了实现它抛出一个ServletException
,如果子类想要一个对特定web方法有用的类,则必须重写该类
默认情况下,任何未被工作实现覆盖的web方法都将爆炸。创建类为抽象的设计模式,即使定义了所有方法,也是在抽象类具有“不做任何事情”或方法的异常抛出实现时使用的
我们可以在类中看到这一点,它为每个web方法(doGet()
,doPost()
,doPut()
和doDelete()
)提供了实现它抛出一个ServletException
,如果子类想要一个对特定web方法有用的类,则必须重写该类
默认情况下,任何未被工作实现覆盖的web方法都会爆炸。抽象类表明,该类本身不会独立使用,其他一些具体类应该扩展它以使其完全有意义
当阻止使用私有
时,构造函数将驻留在子类中
没有抽象方法的抽象类可能是开发人员的一个错误。抽象类表明,这个类本身不会独立使用,其他一些具体类应该扩展它以使其完全有意义
当阻止使用私有
时,构造函数将驻留在子类中
没有抽象方法的抽象类可能是开发人员的错误。特别是关于使用抽象与隐藏构造函数的问题:Abstract
关键字更清楚地说明了程序员的体系结构意图。这是更好的练习
他们提供了所有方法的默认实现这一事实是一个单独的问题。特别是关于抽象与隐藏构造函数的使用:abstract
关键字更清楚地说明了程序员的架构意图。这是更好的练习
他们已经提供了所有方法的默认实现这一事实是一个单独的问题。如果你正在实现所有方法,那么你不需要创建抽象类。你能给我们一个这样做的例子吗?“我们”在这里是一个非常糟糕的概括,因为我没有看到大多数开发人员这样做。根据我的经验,我的大多数同事都避免使用抽象类,除非绝对必要。请不要听上面的人说不要或避免使用抽象类。抽象类有一个位置和目的。。。他们要么从不需要这个目的,要么不理解它的目的。抽象类在被设计成可扩展apon的框架中几乎是一个主要部分。@Worms你是对的,但我认为其他人的观点是,抽象类往往被过度使用和滥用。(我希望他们至少是这么说的。)如果你正在实现所有的方法,那么你不需要创建一个抽象的Cla