无法编译Java代码以实现“接口”

无法编译Java代码以实现“接口”,java,multiple-inheritance,Java,Multiple Inheritance,我无法编译和执行java代码。这是关于实现多重继承接口的程序 代码如下: //Interface Implementation import java.util.Scanner; interface Sports { int sportswt = 12; } class Student { int rollno; String name; Scanner sc = new Scanner(System.in); void getData() { System.out.println("N

我无法编译和执行java代码。这是关于实现多重继承接口的程序 代码如下:

//Interface Implementation
import java.util.Scanner;
interface Sports
{
int sportswt = 12;
}
class Student
{
int rollno;
String name;
Scanner sc = new Scanner(System.in);
void getData()
{
    System.out.println("Name and Roll no :");
    rollno = sc.nextInt();
    name = sc.nextLine();
}
}
class Marks extends Student implements Sports
{
 Scanner sc = new Scanner(System.in);
 int m1 = sc.nextInt();
 int m2 = sc.nextInt();
 System.out.println("Name is : " + name + "\nRoll no is : " + rollno);
 System.out.println("Marks1 : " +m1+ "\nMarks2 : " +m2+"\nTotal is : " + 
 (m1+m2+sportswt)); 
 }
  class InterfaceImplementation6
  {
   public static void main(String[] args){
    Marks mobj = new Marks();
    mobj.getData();
   }
  }
有人能帮忙吗!! 我得到这个错误:


主要问题是关于使用nextLine,而不仅仅是next

我对代码进行了一点重构,使其更加清晰:

import java.util.Scanner;

interface Sports {
    int sportswt = 12;
}

class Student {
    int roll;
    String name;

    void getData() {
        System.out.println("Name and roll number:");
        Scanner sc = new Scanner(System.in);
        name = sc.next(); //if you first ask for name, read the name first
        roll = sc.nextInt();
    }
}

class Marks extends Student implements Sports {

    @Override
    void getData() {
        super.getData();
        Scanner sc = new Scanner(System.in);
        int mark1 = sc.nextInt(); //be more descriptive on your variable names
        int mark2 = sc.nextInt();
        int total = mark1 + mark2 + sportswt; //try to extract operations out of the println() function, so is easier to understand
        System.out.println("Name is : " + name + "\nRoll no is : " + roll);
        System.out.println("Marks1 : " + mark1 + "\nMarks2 : " + mark2 + "\nTotal is : " + total);
    }
}

class InterfaceImplementation6 {

    public static void main(String[] args) {
        Marks mobj = new Marks();
        mobj.getData();
    }
}

这不是编译错误。不要在图片中发布,而是在问题中以文本形式发布。那么错误是什么?@user6369925这是一个运行时错误,请参阅,您应该按照前面的建议以文本而不是图片形式发布错误。另外,正确格式化代码。如果没有格式正确的帖子,您可能会被忽略或被否决。上面的代码无法编译,Marks类在类本身上内联了代码,这是不是打算作为重写getData方法内部的代码?非常感谢..帮助很大!!