引入
今天复习抽象类和接口,抽象类中变量的不能用 abstract 修饰(所以没有抽象变量这一说法),接口中常量(接口没有变量)、方法的默认修饰符位 public abstract,然而你思考过接口中可以定义 protect abstract、default abstract、private abstract 定义常量或者方法吗?
答案
如果突然有一天有一个面试题报错,你知道哪错了吗?
interface Test2 {
protected static final String NAME = "KLZ";
public abstract void name();
}
- 接口中常量、方法的修饰符必须是 pubic static final 和 public abstract;
- 通常我们可以不用写修饰符
public interface Test {
//不能定义变量
// String name;
// abstract String name;
//只能定义常量,但是必须是公共的(public)静态(static)常量(final),三个修饰符可以交换位置
// final String name;
// protected static final String NAME = "klz";
public static final String NAME = "klz";
final public static int age = 21;
// 接口中只能定义抽象方法(没有方法体的方法),默认的修饰符是 public abstract
public abstract void name();
// protected abstract void age();
// default abstract void age();
}