public class Cat {
private final String noise = "meow";
pulic static void makeNoise(){
System.out.println(noise);
}
}
public class Dog {
private final String noise = "woof";
pulic static void makeNoise(){
System.out.println(noise);
}
}
public abstract class Animal {
protected final String noise;
public Animal(String noise) {
this.noise = noise;
}
public void makeNoise() {
System.out.println(noise);
}
}
public class Dog extends Animal{
public Dog(){
super("woof");
}
}
一个可能的解决方案是如下所示:公共抽象void makeNoise();这既不被允许,也不会消除将代码复制到动物的每个孩子身上的必要性。
在保持方法makeNoise静态的同时,如何消除在animal的子级中使用冗余代码的需要?
Java中的静态方法不能在子类中重写。
如果在子类中定义的静态方法具有与父类中的静态方法相同的签名,则该方法不重写父方法,而隐藏了它。父类和子类中的方法彼此之间没有关系。
在您的示例中,如果方法Static void makeNoise()
存在于Animal
中,并且任何子类也定义了该方法,则子类只是在Animal中隐藏makeNoise
方法。
public static void makeNoise(String noise) {
System.out.println(noise);
}
Animal.makeNoise(Cat.NOISE); // A constant NOISE is defined in each subclass
public abstract class Animal {
protected String noise;
protected Animal(String noise) {
this.noise = noise;
}
public void makeNoise() {
System.out.println(noise);
}
}
public class Cat extends Animal{
public static final String NOISE = "meow";
public Cat() {
super(NOISE);
}
}
我有以下课程: 该类包含两个可选值,我想提供所有可能的构造函数排列。第一个版本不初始化任何内容,第二个版本只初始化第一个值,第三个版本只初始化第二个值。 最后一个构造函数是第二个和第三个构造函数的组合。但这是不可能写下来的,因为代码失败了。 是否可以在没有任何代码冗余的情况下(也不调用相同的setter方法)编写最后一个构造函数?
我如何避免在这里过度使用试捕?我如何简化裁员
问题内容: 我有一个客户端库,在该客户端库中对我的REST服务进行http远程调用,然后返回给客户,该客户正在调用我的库,其中包含从REST服务获得的响应以及所有错误(如果包装了任何错误)围绕对象。 这是我的枚举类: 这是我的枚举类: 如您所见,在我的课堂上我有很多领域,因此我有一个很长的构造器,每次当我做一个对象的时候都会有很大的联系。将来我可能会有更多的字段,但目前只有这些字段。 有什么更好的
我是Java的新手,正在处理一个家庭作业问题。该问题指定使用一个构造函数创建一个Temperature类,该构造函数接受华氏温度(作为double)并将其存储在字段中。setFahrenheit方法接受一个华氏温度(以双倍数形式),并将其存储在字段中。 这在我看来是多余的。setFahrenheit方法不是和构造函数完全一样吗?
问题内容: 我的网站最近遭到了一个无辜的代码的攻击: 那里没有SQL调用,因此我不担心SQL注入。但是,显然,SQL并不是唯一的注入方式。 该网站提供了解释以及避免代码注入的一些示例:http : //www.theserverpages.com/articles/webmasters/php/security/Code_Injection_Vulnerabilities_Explained.ht
我在final类中有一堆静态final方法: 我知道,当实例方法的类是final时,实例方法是隐式final的。但是,静态方法也是这样吗?
理论上讲,总是可以到达嵌套在两个循环中的语句。 编译器不同意,并要求在循环之外使用语句。我想知道一种优雅的方法来优化这个方法,这超出了我目前的理解,我尝试的break实现似乎都不起作用。 附加的是来自赋值的一个方法,该方法生成随机整数,并返回循环遍历直到找到第二个随机整数为止的迭代,该迭代是在作为int参数传递给该方法的范围内生成的。
问题内容: 我正在尝试通过从客户端向服务器发送密钥和随机数来认证用户。 我的代码未向我显示客户端的响应。执行下面的代码时,我得到了一个空指针异常。 问题答案: 解决大多数问题的固定步骤: 阅读堆栈跟踪以确定哪一行代码引发NPE 在该行代码处设置一个断点 使用调试器,在遇到断点时,确定该行中的对象引用是 弄清楚为什么引用该文件(到目前为止,这是唯一实际的困难部分) 解决根本原因(也可能很困难)