Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从多个类重写的方法_Java - Fatal编程技术网

Java 从多个类重写的方法

Java 从多个类重写的方法,java,Java,我很难理解如何使用来自两个不同类的同名多个方法(在本例中,是两个相同的方法)。驱动程序类(计算机)利用Model和Laptop类显示用户输入的信息。在Model和Laptop中,有两种名称相同但参数不同的方法。我对笔记本电脑中setModel方法的三个参考变量的设置感到困惑。我已尝试为setModel方法操作模型对象,但未成功 我是从一个UML图上写的。笔记本电脑和模型之间有一种聚合关系,特别是模型和笔记本电脑之间有一种关系(笔记本电脑上有一个菱形,通过一条线连接到模型) } } }如果方法在不

我很难理解如何使用来自两个不同类的同名多个方法(在本例中,是两个相同的方法)。驱动程序类(计算机)利用Model和Laptop类显示用户输入的信息。在Model和Laptop中,有两种名称相同但参数不同的方法。我对笔记本电脑中setModel方法的三个参考变量的设置感到困惑。我已尝试为setModel方法操作模型对象,但未成功

我是从一个UML图上写的。笔记本电脑和模型之间有一种聚合关系,特别是模型和笔记本电脑之间有一种关系(笔记本电脑上有一个菱形,通过一条线连接到模型)

}

}


}

如果方法在不同的类中声明,您甚至不需要不同的参数,您只需使用对象名调用,并且响应的方法会自动调用。

这就是让我困惑的地方,我本来不会以这种方式实现它,但我必须这样做

我用我最初的实现找到了解决方案

public void setModel(String newModel, double newCPU, int newRAM)
    {
    model.setModel(newModel);
    model.setCPU(newCPU);
    model.setRAM(newRAM);
    }
然后,我修复了模型对象的实例化

private Model model = new Model();

我不知道你在问什么。您可以使用为
Laptop
setModel
方法提供的参数创建一个新的
Model
实例,并将
Laptop
Model
实例变量设置为新创建的
Model
实例。也就是说,通常
setModel
会采用
Model
,而不是作为
模型的工厂,但这是一个不同的讨论,没有单一的答案。我尝试了这个方法,但得到了一个NullPointerException{Model.setModel(newModel);Model.setCPU(newCPU);Model.setRAM(newRAM);}Nevermind,我删除了NullPointerException。我没有完全实例化模型类
import java.text.DecimalFormat;
public class Model {

private String modelName;
private double cpuSpeed;
private int ramSize;

    // TODO Auto-generated method stub
    public Model()
    {
        this.modelName = "?";
        this.cpuSpeed = 0.0;
        this.ramSize = 0;
    }

    public String getModel()
    {
        return modelName;
    }

    public double getCPU()
    {
        return cpuSpeed;
    }

    public int getRAM()
    {
        return ramSize;
    }

    public void setModel(String newModel)
    {
        modelName = newModel;
    }

    public void setCPU(double newCPU)
    {
        cpuSpeed = newCPU;
    }

    public void setRAM(int newRam)
    {
        ramSize = newRam;
    }

    public String toString()
    {
        DecimalFormat df = new DecimalFormat("0.00");
         return ("Model:\t" + modelName + "\n CPU:\t " + df.format(cpuSpeed) + "\n RAM:\t " + ramSize+"GB" + "\n" );
    }
public void setModel(String newModel, double newCPU, int newRAM)
    {
    model.setModel(newModel);
    model.setCPU(newCPU);
    model.setRAM(newRAM);
    }
private Model model = new Model();