Java中的重写方法
我正在尝试从类“Operatii”执行一个方法。该方法是在类“PolinomIntreg”中编写的。问题是,当执行时,程序将转到重写的方法,其中没有代码,也没有代码所在的方法 我该怎么做才能让程序转到有代码的程序 PolinomIntreg类:Java中的重写方法,java,overriding,Java,Overriding,我正在尝试从类“Operatii”执行一个方法。该方法是在类“PolinomIntreg”中编写的。问题是,当执行时,程序将转到重写的方法,其中没有代码,也没有代码所在的方法 我该怎么做才能让程序转到有代码的程序 PolinomIntreg类: import java.util.Scanner; public class PolinomIntreg<INTEGER> implements IPolinom<INTEGER> { int grad1, grad2, x
import java.util.Scanner;
public class PolinomIntreg<INTEGER> implements IPolinom<INTEGER> {
int grad1, grad2, x, i;
double val = 0;
int[] pol1 = new int[100];
int[] pol2 = new int[100];
int[] pol3 = new int[200];
public void grad(int grad1, int grad2){
System.out.println("Introduceti gradele celor doua polinoame: ");
Scanner in = new Scanner(System.in);
this.grad1 = in.nextInt();
this.grad2 = in.nextInt();
}
public void coef(int pol1[], int pol2[], int grad1, int grad2){
System.out.println("Introduceti coeficientii reali ai primului polinom: ");
for(i = 0; i < this.grad1; i++)
{
Scanner in = new Scanner(System.in);
pol1[i] = in.nextInt();
}
System.out.println("Introduceti coeificientii reali ai celui de al doilea polinom: ");
for(i = 0; i < this.grad2; i++)
{
Scanner in = new Scanner(System.in);
pol2[i] = in.nextInt();
}
}
public void add(int pol1[], int pol2[], int grad1, int grad2){
if(this.grad1 > this.grad2)
{
for(i = 0; i < this.grad1 ; i++)
pol1[i] = pol2[i] + pol1[i];
}
else
for(i = 0; i < this.grad2 ; i++)
pol2[i] = pol2[i] + pol1[i];
}
public void substract(int pol1[], int pol2[], int grad1, int grad2){
if(this.grad1 > this.grad2)
{
for(i = 0; i < this.grad1 ; i++)
pol1[i] = pol2[i] - pol1[i];
afisare(pol1,this.grad1);
}
else
for(i = 0; i < this.grad2 ; i++)
pol2[i] = pol2[i] - pol1[i];
afisare(pol2,this.grad2);
}
public void value(int pol1[], int grad1){
System.out.println("Introduceti o valoare pentru x: ");
Scanner in = new Scanner(System.in);
x = in.nextInt();
for( i = 0; i < this.grad1; i++)
val = val + pol1[i] * Math.pow(x,i);
System.out.println("Valoarea polinomului in punctul" + x + " este " + val);
}
public void afisare(int pol1[], int grad1){
for(i = grad1 - 1; i >= 0; i--)
System.out.println(pol1[i] + "^" + i + "+ ");
}
public void multiply(int pol1[], int pol2[], int grad1, int grad2){
int j = 0;
for ( i = 0; i < this.grad1 ; i++)
for (j = 0; j < this.grad2 ; j++)
{
pol3[i+j] = pol3[i+j] + pol1[i] + pol2[j];
}
}
@Override
public void add(INTEGER[] pol1, INTEGER[] pol2, INTEGER grad1, INTEGER grad2) {
// TODO Auto-generated method stub
}
@Override
public void value(INTEGER[] pol1, INTEGER grad1) {
// TODO Auto-generated method stub
}
@Override
public void multiply(INTEGER[] pol1, INTEGER[] pol2, INTEGER[] pol3,
INTEGER grad1, INTEGER grad2, INTEGER grad3) {
// TODO Auto-generated method stub
}
@Override
public void grad(INTEGER grad1, INTEGER grad2) {
}
@Override
public void coef(INTEGER[] pol1, INTEGER[] pol2, INTEGER grad1,
INTEGER grad2) {
// TODO Auto-generated method stub
}
@Override
public void afisare(INTEGER[] pol1, INTEGER grad1) {
// TODO Auto-generated method stub
}
@Override
public void substract(INTEGER[] pol1, INTEGER[] pol2, INTEGER grad1,
INTEGER grad2) {
// TODO Auto-generated method stub
}
}
import java.util.Scanner;
公共类PolinomIntreg实现IPolinom{
int grad1,grad2,x,i;
双val=0;
int[]pol1=新int[100];
int[]pol2=新int[100];
int[]pol3=新int[200];
公共无效梯度(整数梯度1、整数梯度2){
System.out.println(“介绍等级celor doua polinoame:”);
扫描仪输入=新扫描仪(系统输入);
this.grad1=in.nextInt();
this.grad2=in.nextInt();
}
公共无效系数(内部pol1[],内部pol2[],内部grad1,内部grad2){
System.out.println(“科学原理简介”);
对于(i=0;ithis.grad2)
{
对于(i=0;ithis.grad2)
{
对于(i=0;i=0;i--)
System.out.println(pol1[i]+“^”+i+“+”);
}
公共空乘(整数pol1[],整数pol2[],整数grad1,整数grad2){
int j=0;
对于(i=0;i
操作等级:
import java.util.Scanner;
public class Operatii {
static Integer[] pol1 = new Integer[100];
static Integer[] pol2 = new Integer[100];
static Integer[] pol3 = new Integer[200];
static public Integer grad1, grad2,grad3, x, i;
static Float[] pol11 = new Float[100];
static Float[] pol21 = new Float[100];
static Float[] pol31 = new Float[200];
static Float grad11, grad21, grad31;
Float x1;
public static void main(String args[]){
IPolinom<Integer> poli = new PolinomIntreg<>();
IPolinom<Float> polr = new PolinomReal<>();
System.out.println("Apasati 1 pentru operatii cu polinoame cu coef reali");
System.out.println("Apasati 0 pentru operatii cu polinoame cu coef intregi");
Scanner in = new Scanner(System.in);
int meniu = in.nextInt();
if( meniu == 0){
poli.grad(grad1, grad2);
poli.coef(pol1, pol2, grad1, grad2);
poli.add(pol1, pol2, grad1, grad2);
//poli.multiply(pol1, pol2, pol3, grad1, grad2, grad3);
//poli.value(pol1, grad1);
//poli.afisare(pol1, grad1);
//poli.afisare(pol2, grad2);
}
else if ( meniu == 1 ){
polr.grad(grad11, grad21);
polr.coef(pol11, pol21, grad11, grad21);
polr.add(pol11, pol21, grad11, grad21);
polr.multiply(pol11, pol21, pol31, grad11, grad21, grad31);
polr.value(pol11, grad11);
polr.afisare(pol11, grad11);
polr.afisare(pol21, grad21);
}
else System.out.println("Eroare introducere optiune! ");
}
}
import java.util.Scanner;
公营{
静态整数[]pol1=新整数[100];
静态整数[]pol2=新整数[100];
静态整数[]pol3=新整数[200];
静态公共整数grad1、grad2、grad3、x、i;
静态浮动[]pol11=新浮动[100];
静态浮动[]pol21=新浮动[100];
静态浮动[]pol31=新浮动[200];
静态浮动梯度11、梯度21、梯度31;
浮点x1;
公共静态void main(字符串参数[]){
IPolinom poli=新PolinomIntreg();
IPolinom polr=新PolinomReal();
系统输出打印(“Apasati 1 pentru operatii cu polinoame cu coef reali”);
系统输出打印(“Apasati 0 pentru operatii cu polinoame cu coef intregi”);
扫描仪输入=新扫描仪(系统输入);
int meniu=in.nextInt();
if(meniu==0){
政治系毕业生(一年级、二年级);
poli.coef(pol1,pol2,grad1,grad2);
poli.add(pol1,pol2,grad1,grad2);
//poli.乘法(pol1,pol2,pol3,grad1,grad2,grad3);
//poli.值(pol1,grad1);
//阿费萨尔警察局(警察局1级);
//非洲警察局(pol2,grad2);
}
else if(meniu==1){
波兰大学毕业生(第11届、第21届);
波尔科夫(波尔11,波尔21,格拉德11,格拉德21);
polr.add(pol11、pol21、grad11、grad21);
polr.乘法(pol11,pol21,pol31,grad11,grad21,grad31);
polr.值(pol11,grad11);
波尔·阿费萨尔(波尔11,格拉德11);
polr.afisare(pol21,grad21);
}
else System.out.println(“Eroare introcere optiune!”);
}
}
IPolinom是一个接口。如果我正确理解了你的问题,如果你试图调用add方法,那么你试图调用add方法,该方法的末尾有“Integer”变量,因此如果你将grad变量声明为“int”类型,那么它将转到有代码的方法 更准确地说:
poli.add(pol1, pol2, grad1, grad2); here grad1 and grad2 are type of Integer. Declare grad1 and grad2 to be int then the add method which has code will be called.
声明grad1和grad2相似
int grad1, grad2;
更新:
同时将pol1和pol2的类型更改为int类型
static int[] pol1 = new int[100];
static int[] pol2 = new int[100];
如果我正确理解您的问题,如果您尝试调用add方法,那么您尝试调用add方法,该方法的末尾有“Integer”变量,因此如果您将grad变量声明为“int”类型,那么它将转到包含代码的方法 更准确地说:
poli.add(pol1, pol2, grad1, grad2); here grad1 and grad2 are type of Integer. Declare grad1 and grad2 to be int then the add method which has code will be called.
声明grad1和grad2相似
int grad1, grad2;
更新:
同时将pol1和pol2的类型更改为int类型
static int[] pol1 = new int[100];
static int[] pol2 = new int[100];
您没有覆盖这些方法。为了覆盖,您需要使用精确的签名(您可以