接口中常量、方法的修饰符必须是 pubic static final 和 public abstract吗

本文深入探讨了接口和抽象类在Java中的使用区别,重点解析了接口中常量与方法的修饰符规则,以及为何不能使用如protected、default等修饰符。通过具体代码示例,清晰阐述了接口规范的严格性和其在面向对象编程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入

今天复习抽象类和接口,抽象类中变量的不能用 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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值