【发布时间】:2010-10-24 16:25:14
【问题描述】:
您好,我只是想确保我的这些概念是正确的。 Java 中的重载意味着您可以拥有具有不同数量参数或不同数据类型的构造函数或方法。即
public void setValue(){
this.value = 0;
}
public void setValue(int v){
this.value = v;
}
这个方法怎么样?由于它返回不同的数据类型,是否仍会被视为重载?
public int setValue(){
return this.value;
}
第二个问题是:什么是压倒一切的 在java中?是否与继承有关。让我有以下几点:
public class Vehicle{
double basePrice = 20000;
//constructor defined
public double getPrice(){
return basePrice;
}
}
public class Truck extends Vehicle{
double truckPrice = 14000;
//constructor defined
public double getPrice(){
return truckPrice;
}
}
所以现在假设我有以下内容
Truck truck = new Truck();
如果我打电话
truck.super.getPrice()
这将返回 Vehicle 类的价格 20,000
如果我打电话
truck.getPrice()
这将返回卡车类的价格,14,000
我的知识对这两个问题都正确吗?
【问题讨论】:
-
我不会使用 setValue() ,因为它设置的值不明确。 clearValue() 会更清晰,因此不需要重载。
-
你的意思是覆盖而不是覆盖。覆盖对象的方法在 JavaScript 中被更频繁地讨论。 IE。 Object.toString = function(){ return "此函数已被覆盖";};
标签: java overloading overwrite