草庐IT

Abstract

全部标签

Java:抽象类中的静态字段

我只是从一个例子开始,它解释得最好:publicabstractclassA{staticStringstr;}publicclassBextendsA{publicB(){str="123";}}publicclassCextendsA{publicC(){str="abc";}}publicclassMain{publicstaticvoidmain(String[]args){Ab=newB();Ac=newC();System.out.println("b.str="+b.str);System.out.println("c.str="+c.str);}}这将打印出来:b.st

java - 在 Java 中实现抽象方法时是否应该添加 @Override 注释?

在Java中重写非虚拟方法时,建议使用@Override注释,但如果我实现抽象方法怎么办?那么我应该使用@Override吗? 最佳答案 在这种情况下,我倾向于使用@Override,这样如果父类(superclass)发生更改(完全删除方法或更改其签名等),该方法就会在子类中被标记。)。唯一真正的区别是,如果没有注释,如果父类(superclass)/接口(interface)中的方法被更改或删除,所讨论的实现只是成为该类的“正常”方法。因此,如果您只是为了履行契约(Contract)而实现该方法,则应该添加注释;如果该方法在您的

java - 在 Java 中实现抽象方法时是否应该添加 @Override 注释?

在Java中重写非虚拟方法时,建议使用@Override注释,但如果我实现抽象方法怎么办?那么我应该使用@Override吗? 最佳答案 在这种情况下,我倾向于使用@Override,这样如果父类(superclass)发生更改(完全删除方法或更改其签名等),该方法就会在子类中被标记。)。唯一真正的区别是,如果没有注释,如果父类(superclass)/接口(interface)中的方法被更改或删除,所讨论的实现只是成为该类的“正常”方法。因此,如果您只是为了履行契约(Contract)而实现该方法,则应该添加注释;如果该方法在您的

java - 接口(interface)中的 toString()、equals() 和 hashCode()

所以,我有一个接口(interface)需要实现一堆方法,方法名称无关紧要。实现这个接口(interface)的对象经常被放入集合中,并且还有我希望它们使用的特殊toString()格式。所以,我认为将hashCode()、equals()和toString()放入接口(interface)会很方便,以确保我记得覆盖这些的默认方法。但是当我将这些方法添加到接口(interface)时,如果我没有实现这三个方法,IDE/编译器不会提示,即使我明确地将它们放在接口(interface)中。为什么不对我强制执行?如果我不实现任何其他方法,它会提示,但它不会强制执行这三个方法。是什么赋予了?有

java - 接口(interface)中的 toString()、equals() 和 hashCode()

所以,我有一个接口(interface)需要实现一堆方法,方法名称无关紧要。实现这个接口(interface)的对象经常被放入集合中,并且还有我希望它们使用的特殊toString()格式。所以,我认为将hashCode()、equals()和toString()放入接口(interface)会很方便,以确保我记得覆盖这些的默认方法。但是当我将这些方法添加到接口(interface)时,如果我没有实现这三个方法,IDE/编译器不会提示,即使我明确地将它们放在接口(interface)中。为什么不对我强制执行?如果我不实现任何其他方法,它会提示,但它不会强制执行这三个方法。是什么赋予了?有

java - 为什么Java中的抽象类有构造函数?

这个问题在这里已经有了答案:Cananabstractclasshaveaconstructor?(22个回答)关闭9年前。为什么Java中的abstract类有constructor?它在构造什么,因为我们无法实例化abstract类?有什么想法吗? 最佳答案 Java中的构造函数实际上并不“构建”对象,它用于初始化字段。假设您的抽象类有字段x和y,并且您总是希望它们以某种方式初始化,无论最终创建的是什么实际的具体子类。所以你创建一个构造函数并初始化这些字段。现在,如果你的抽象类有两个不同的子类,当你实例化它们时,它们的构造函数将

java - 为什么Java中的抽象类有构造函数?

这个问题在这里已经有了答案:Cananabstractclasshaveaconstructor?(22个回答)关闭9年前。为什么Java中的abstract类有constructor?它在构造什么,因为我们无法实例化abstract类?有什么想法吗? 最佳答案 Java中的构造函数实际上并不“构建”对象,它用于初始化字段。假设您的抽象类有字段x和y,并且您总是希望它们以某种方式初始化,无论最终创建的是什么实际的具体子类。所以你创建一个构造函数并初始化这些字段。现在,如果你的抽象类有两个不同的子类,当你实例化它们时,它们的构造函数将

java - 如何强制在我的抽象类的所有子类中定义构造函数

我有一个定义抽象方法的抽象类A。这意味着,要使一个类可实例化,必须实现所有抽象方法。我希望我的所有子类都实现一个以2个整数作为参数的构造函数。声明构造函数违背了我的目的,因为我希望在子类中定义构造函数,而我对实现一无所知。此外,我不能将构造函数声明为抽象的;有没有办法做到这一点?我想要的示例:假设我正在定义一个Matrix类的API。在我的问题中,Matrix无法更改它们的尺寸。要创建一个矩阵,我需要提供它的大小。因此,我希望我的所有实现者都为构造函数提供大小作为参数。这个构造函数的动机是问题,而不是实现问题。只要保留方法的所有语义,实现就可以对这些进行任何操作。假设我想在我的抽象类中

java - 如何强制在我的抽象类的所有子类中定义构造函数

我有一个定义抽象方法的抽象类A。这意味着,要使一个类可实例化,必须实现所有抽象方法。我希望我的所有子类都实现一个以2个整数作为参数的构造函数。声明构造函数违背了我的目的,因为我希望在子类中定义构造函数,而我对实现一无所知。此外,我不能将构造函数声明为抽象的;有没有办法做到这一点?我想要的示例:假设我正在定义一个Matrix类的API。在我的问题中,Matrix无法更改它们的尺寸。要创建一个矩阵,我需要提供它的大小。因此,我希望我的所有实现者都为构造函数提供大小作为参数。这个构造函数的动机是问题,而不是实现问题。只要保留方法的所有语义,实现就可以对这些进行任何操作。假设我想在我的抽象类中

java - Spring 数据 JPA : Creating an abstract repository

给定以下类:@MappedSuperclass@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)@DiscriminatorColumn(name="animalType",discriminatorType=DiscriminatorType.STRING)@QueryExcludepublicabstractclassAnimal{}@Entity@DiscriminatorValue("dog")publicclassDog{}@Entity@DiscriminatorValue("cat")publicclassCat{