Java 如何实现;凌驾;在爪哇?

Java 如何实现;凌驾;在爪哇?,java,oop,binary,polymorphism,decimal,Java,Oop,Binary,Polymorphism,Decimal,我试图在java中使用多态性对二进制到十进制和十进制到二进制进行编码,但是它一直打印位于父类中的方法,而不是重写。谢谢你的帮助 oopfailal.class: package oopfinal; import java.util.Scanner; public class OopFinal extends Convert{ public static void main(String[] args) { Scanner userInput = new Scanner(

我试图在java中使用多态性对二进制到十进制和十进制到二进制进行编码,但是它一直打印位于父类中的方法,而不是重写。谢谢你的帮助

oopfailal.class:

package oopfinal;
import java.util.Scanner;

public class OopFinal extends Convert{

    public static void main(String[] args) {

      Scanner userInput = new Scanner(System.in);

      System.out.print("Please value to convert: ");
      int inputNumbers = userInput.nextInt();

      Convert convert = new Convert();

      //checks whether number is binary or not  

      if (inputNumbers !=0 || inputNumbers % 10 > 1){
           String bin = Integer.toBinaryString(inputNumbers);
           int binaryResult = Integer.parseInt(bin);
           convert.Calc(binaryResult);

      } else if (inputNumbers == 0 || inputNumbers % 10 == 1) {
           String dec = Integer.toString(inputNumbers);
           int decimalResult = Integer.parseInt(dec);
           convert.Calc(decimalResult);  

      } else {
           System.out.println("Negative numbers are invalid here... ");
      }    
     }


     //binary to decimal
     @Override
     public void Calc(int n) {
         System.out.println("Decimal equivalent is: " + n);
     }    
 }
package oopfinal;

public class Convert {

    //decimal to binary
    public void Calc(int n) {
        System.out.println("Binary equivalent is: " + n);
   }
}
转换器。类别:

package oopfinal;
import java.util.Scanner;

public class OopFinal extends Convert{

    public static void main(String[] args) {

      Scanner userInput = new Scanner(System.in);

      System.out.print("Please value to convert: ");
      int inputNumbers = userInput.nextInt();

      Convert convert = new Convert();

      //checks whether number is binary or not  

      if (inputNumbers !=0 || inputNumbers % 10 > 1){
           String bin = Integer.toBinaryString(inputNumbers);
           int binaryResult = Integer.parseInt(bin);
           convert.Calc(binaryResult);

      } else if (inputNumbers == 0 || inputNumbers % 10 == 1) {
           String dec = Integer.toString(inputNumbers);
           int decimalResult = Integer.parseInt(dec);
           convert.Calc(decimalResult);  

      } else {
           System.out.println("Negative numbers are invalid here... ");
      }    
     }


     //binary to decimal
     @Override
     public void Calc(int n) {
         System.out.println("Decimal equivalent is: " + n);
     }    
 }
package oopfinal;

public class Convert {

    //decimal to binary
    public void Calc(int n) {
        System.out.println("Binary equivalent is: " + n);
   }
}

对于方法重写,签名(返回类型除外)必须不同。这不符合使用方法重写实现的条件。这是否回答了您的问题?多态性的使用存在问题,因为您的convert实例不是oopfail,因为您正在编写:
convert convert=new convert()。相反,您应该编写
Convert=new oopfail()
。这就是如何使对Calc方法的调用动态绑定到子方法而不是父方法的方法。