与分层继承相关的简单Java程序没有提供所需的输出

与分层继承相关的简单Java程序没有提供所需的输出,java,inheritance,Java,Inheritance,我编写了以下Java程序: 选项卡1: package base; import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner obj = new Scanner(System.in); System.out.println

我编写了以下Java程序:

选项卡1:

package base;
import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner obj = new Scanner(System.in);

    System.out.println("Enter first number:  ");
    int num1 = obj.nextInt();
    System.out.println("Enter the second number:  ");
    int num2 = obj.nextInt();

    Add obj1 = new Add();
    Mul obj2 = new Mul();

    obj1.getData(num1, num2);

    int add = obj1.addition();
    int mul = obj2.multiplication();

    System.out.println("The addition of the two numbers is:  " +add);
    System.out.println("The multiplication of the two numbers is:  " +mul);
}

}
package base;

public class Parent {

int num1, num2;

void getData(int x, int y){
    num1 = x;
    num2 = y;
}

}
package base;

public class Add extends Parent {

int addition(){
    int x;
    x = num1 + num2;
    return x;
}
}
package base;

public class Mul extends Parent {

int multiplication(){
    int x;
    x = num1*num2;
    return x;
}
}
选项卡2:

package base;
import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner obj = new Scanner(System.in);

    System.out.println("Enter first number:  ");
    int num1 = obj.nextInt();
    System.out.println("Enter the second number:  ");
    int num2 = obj.nextInt();

    Add obj1 = new Add();
    Mul obj2 = new Mul();

    obj1.getData(num1, num2);

    int add = obj1.addition();
    int mul = obj2.multiplication();

    System.out.println("The addition of the two numbers is:  " +add);
    System.out.println("The multiplication of the two numbers is:  " +mul);
}

}
package base;

public class Parent {

int num1, num2;

void getData(int x, int y){
    num1 = x;
    num2 = y;
}

}
package base;

public class Add extends Parent {

int addition(){
    int x;
    x = num1 + num2;
    return x;
}
}
package base;

public class Mul extends Parent {

int multiplication(){
    int x;
    x = num1*num2;
    return x;
}
}
选项卡3:

package base;
import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner obj = new Scanner(System.in);

    System.out.println("Enter first number:  ");
    int num1 = obj.nextInt();
    System.out.println("Enter the second number:  ");
    int num2 = obj.nextInt();

    Add obj1 = new Add();
    Mul obj2 = new Mul();

    obj1.getData(num1, num2);

    int add = obj1.addition();
    int mul = obj2.multiplication();

    System.out.println("The addition of the two numbers is:  " +add);
    System.out.println("The multiplication of the two numbers is:  " +mul);
}

}
package base;

public class Parent {

int num1, num2;

void getData(int x, int y){
    num1 = x;
    num2 = y;
}

}
package base;

public class Add extends Parent {

int addition(){
    int x;
    x = num1 + num2;
    return x;
}
}
package base;

public class Mul extends Parent {

int multiplication(){
    int x;
    x = num1*num2;
    return x;
}
}
选项卡4:

package base;
import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner obj = new Scanner(System.in);

    System.out.println("Enter first number:  ");
    int num1 = obj.nextInt();
    System.out.println("Enter the second number:  ");
    int num2 = obj.nextInt();

    Add obj1 = new Add();
    Mul obj2 = new Mul();

    obj1.getData(num1, num2);

    int add = obj1.addition();
    int mul = obj2.multiplication();

    System.out.println("The addition of the two numbers is:  " +add);
    System.out.println("The multiplication of the two numbers is:  " +mul);
}

}
package base;

public class Parent {

int num1, num2;

void getData(int x, int y){
    num1 = x;
    num2 = y;
}

}
package base;

public class Add extends Parent {

int addition(){
    int x;
    x = num1 + num2;
    return x;
}
}
package base;

public class Mul extends Parent {

int multiplication(){
    int x;
    x = num1*num2;
    return x;
}
}
当我运行代码时,它会给出如下结果:

Enter first number:
5
Enter second number:
4
The addition of the two numbers is:  9
The multiplication of the two numbers is: 0
我用各种不同的输入得到了相同类型的结果

乘法的结果总是0

我已经反复检查了我的代码好几次,但显然我没有发现任何错误

我哪里做错了

任何帮助都将不胜感激

Add obj1 = new Add();
Mul obj2 = new Mul();

obj1.getData(num1, num2);

您创建了两个不同的对象,
obj1
obj2
,但仅将非零值放入
obj1
obj2
中的值仍然为零。

在调用其方法之前,应该将参数传递给
Mul
实例

obj2.getData(num1, num2);
int mul = obj2.multiplication();

obj2
上没有调用
getData()

obj2.getData(num1, num2);

您从未使用
getData()
设置
obj2
上的值。零乘以零等于零。您可能还发现这很有用:请将getData的名称更改为setData。您正在设置数据,因此如果您的函数调用getData,则会造成混乱。