我必须做一个Java程序,说:


  用Java编写一个程序来实现继承。您的程序应具有以下结构
  
  
  创建一个基类来容纳两个Integer和一个显示它们的方法。
  在派生的类中添加另一个Integer并显示它。
  在相同的派生类中创建一个方法,将三个数字相加。
  将值传递给整数并显示结果。
  


而且我不太擅长Java,所以不知道我做的是对还是错或什么!而且我认为我不太了解所要的东西。这是我想出的:

public class firstclass {
    int a=5;
    int b=6;

    public void Display (){
        System.out.println(a+b);
    }
}




public class secondclass extends firstclass {
    int z=0;

    public void Displaysecond (){
        System.out.println(z);
    }

    public void add (){
        z=a+b;
        System.out.println(z);
    }
}




public class mainOne {
    public static void main(String[] args) {
        firstclass call = new firstclass();
        secondclass call2 = new secondclass();

        call.Display();
        call2.Displaysecond();
        call2.add();
    }
}


它运行没有问题,但是“ System.out.println(a + b);”为“ 11”。而a = 5和b = 6。
我能正确处理吗?

最佳答案

你有几个问题。正如Grammin所说,您的添加功能不是您的老师想要的。您的老师希望您选择a,b和z。所以

public void add(){
    int sum = a + b + z;
    System.out.println(sum);
}


或者,您可以创建void add() int add()并返回sum

其次,您没有遵循Java约定。您的变量需要更不恰当地命名,您的类需要以大写字母开头,而方法则需要以小写字母开头。

也许您应该将您的类命名为FirstClass,SecondClass和MainClass?

您的方法:display(),displaySecond()和add()

您的变量:a,b,c或num1,num2,num3。 (为了保持一致)

另外,因为SecondClass是FirstClass的子类,所以call.display()的结果应与call2.display()相同。阅读this可以更好地理解继承。

旁注:如果要进行某种形式的在线数学运算,则应在括号()中添加数字以阐明和确保安全。例如

public void display(){
    System.out.println((a + b));
}


代替

public void display(){
    System.out.println(a+b);
}

10-07 13:23
查看更多