在 java 8 及更高版本中,使用 default 关键字可以在接口中定义带有方法体的默认方法。具体做法是在接口声明的方法签名前添加 default 修饰符,并直接编写实现代码,这样实现类可以继承该默认行为而无需强制重写。

如何定义一个带参数的默认方法
定义带参数的默认方法与无参方法类似,只需在参数列表中指定类型和名称即可。实现类可以选择使用这个默认实现,也可以提供自己的覆盖版本。

public interface Calculator {
default int add(int a, int b) {
return a + b;
}
}
默认方法如何处理多继承冲突
当一个类实现多个包含同名默认方法的接口时,Java 要求必须显式重写该方法以解决冲突。可以通过调用特定接口的默认方法来复用原有逻辑,从而明确最终的行为。

public interface A {
default void show() {
System.out.println("A");
}
}
public interface B {
default void show() {
System.out.println("B");
}
}
public class C implements A, B {
@Override
public void show() {
A.super.show();
}
}
默认方法能否访问类的私有成员
默认方法不能直接访问实现类的私有成员变量或私有方法,因为默认方法属于接口的一部分,其作用域仅限于接口内部及实现类的公共/受保护层级。若需操作私有状态,应通过公共 getter/setter 或抽象方法间接交互。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











