如何在 Java 中隐藏类中不支持的接口方法?
java 8object oriented programmingprogramming更新于 2025/11/15 10:52:17
实际上你无法做到。一旦你实现了一个接口,就必须实现它的所有方法,或者将类设置为抽象类。除非是默认方法,否则无法跳过接口中的方法。但是,如果你尝试跳过接口方法的实现,则会产生编译时错误。
示例
interface MyInterface{
public static int num = 100;
public void sample();
public void getDetails();
public void setNumber(int num);
public void setString(String data);
}
public class InterfaceExample implements MyInterface{
public static int num = 10000;
public void sample() {
System.out.println("This is the implementation of the sample method");
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.sample();
}
}
输出
编译时错误
InterfaceExample.java:8: error: InterfaceExample is not abstract and does not override abstract method setString(String) in MyInterface
public class InterfaceExample implements MyInterface{
^
1 error
但是,您可以实现这些不需要的/不受支持的方法并从中抛出异常,例如 UnsupportedOperationException 或 IllegalStateException。
示例
interface MyInterface{
public void sample();
public void getDetails();
public void setNumber(int num);
public void setString(String data);
}
public class InterfaceExample implements MyInterface{
public void getDetails() {
try {
throw new UnsupportedOperationException();
}
catch(UnsupportedOperationException ex) {
System.out.println("Method not supported");
}
}
public void setNumber(int num) {
try {
throw new UnsupportedOperationException();
}
catch(UnsupportedOperationException ex) {
System.out.println("Method not supported");
}
}
public void setString(String data) {
try {
throw new UnsupportedOperationException();
}
catch(UnsupportedOperationException ex) {
System.out.println("Method not supported");
}
}
public void sample() {
System.out.println("This is the implementation of the sample method");
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.sample();
obj.getDetails();
obj.setNumber(21);
obj.setString("data");
}
}
输出
This is the implementation of the sample method Method not supported Method not supported Method not supported

