相关疑难解决方法(0)

Java重载vs重写

嗨,我只是想确保我有正确的这些概念.在java中重载意味着您​​可以使用具有不同数量的参数或不同数据类型的构造函数或方法.即

public void setValue(){
   this.value = 0;
}
public void setValue(int v){
   this.value = v;
}
Run Code Online (Sandbox Code Playgroud)

这个方法怎么样?它是否仍会被视为重载,因为它返回不同的数据类型?

public int setValue(){
   return this.value;
}
Run Code Online (Sandbox Code Playgroud)

第二个问题是:什么是重写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;
   }
}
Run Code Online (Sandbox Code Playgroud)

所以现在让我说我有以下内容

Truck truck = new Truck();
Run Code Online (Sandbox Code Playgroud)

如果我打电话

truck.super.getPrice()
Run Code Online (Sandbox Code Playgroud)

这将从Vehicle类返回20,000的价格

如果我打电话

truck.getPrice()
Run Code Online (Sandbox Code Playgroud)

这将返回卡车类的价格,14,000

我的知识对两个问题都是正确的吗?

java overloading overwrite

16
推荐指数
2
解决办法
8万
查看次数

标签 统计

java ×1

overloading ×1

overwrite ×1