Java 如何实现;凌驾;在爪哇?
我试图在java中使用多态性对二进制到十进制和十进制到二进制进行编码,但是它一直打印位于父类中的方法,而不是重写。谢谢你的帮助 oopfailal.class: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(
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方法的调用动态绑定到子方法而不是父方法的方法。