Объявите интерфейс в пакете студента:
package student;
public interface Student {
void rollNo();
void course();
void marks();
}
, затем в другом пакете, объявите ваш класс MyMain
package anotherpackage;
import student.Student;
public class MyMain {
public static void main(String[] args) {
Test1 t = new Test1();
t.rollNo();
t.course();
t.marks();
}
}
class Test1 implements Student {
@Override
public void rollNo() {
System.out.println("18CS35");
}
@Override
public void course() {
System.out.println("OOP");
}
@Override
public void marks() {
System.out.println("85");
}
}
Файл называется MyMain.java
и класс MyMain
должен быть объявлен public
внутри него. Это важно . У вас должен быть один и только один класс publi c в файле с тем же именем, что и у файла.
Test1
, с другой стороны, не объявлен publi c.
Вам не нужно добавлять аннотации @Override
, но рекомендуется всегда добавлять их при реализации или переопределении метода;
Чтобы заставить его работать:
- stick
Student.java
в каталоге с именем student
- stick
MyMain.java
в каталоге с именем anotherpackage
затем скомпилируйте
javac student/Student.java
javac anotherpackage/MyMain.java
и запустите:
java anotherpackage/MyMain
вывод:
18CS35
OOP
85
доказательство:
Обратите внимание, что когда вы реализуете свои методы, вам нужно объявить их publi c, иначе компилятор пожалуется, что вы уменьшите их видимость. Это доказывает, что они считаются в интерфейсе publi c.