证明接口成员变量的默认修饰符

证明接口成员变量的默认修饰符


前言🐻‍❄️

我们知道,接口中的成员方法是 public 且为 abstract,成员方法的默认修饰符为 public static final,那么如何证明呢?下面就是我自己理解的证明过程。如果有误/有更好的证明方法,欢迎指正!😊
在这里插入图片描述


证明修饰符 final🦕

我们尝试修改该成员属性的值,编译器报错 Cannot assign a value to final variable n1,说明该值已经为final修饰的常量,无法修改由 final 修饰的值,因此证明该成员变量由关键字final修饰

public class InterfaceDetail {
    public static void main(String[] args) {
        //1.证明 final
        IB.n1 = 30;
    }
}

//接口 IB
interface IB {
    //接口中的属性只能是 final,而且是 public static final 修饰符
    int n1 = 10;
    //相当于 public static final int n1 = 10;
}

在这里插入图片描述


证明修饰符 static🐥

关键字 static 最显著的特征就是 可以直接通过 类名.属性名直接调用,因此证明 static 关键字非常的容易

public class InterfaceDetail {
    public static void main(String[] args) {
        //1.证明 final
        //IB.n1 = 30;

        //2.证明static
        System.out.println(IB.n1);
    }
}

interface IB {
    //接口中的属性只能是 final,而且是 public static final 修饰符
    int n1 = 10;
    //相当于 public static final int n1 = 10;
}

在这里插入图片描述


证明修饰符 public🐧

证明该修饰符为 public 有两种思路:

  1. 在接口定义成员变量时,把权限修饰符一个一个试
    证明该成员属性由public修饰

  2. 利用访问权限的特点,来以此区分 默认访问权限与公共访问权限

包的结构如下图所示:
在这里插入图片描述

Inter1
package program.Java_07.p1;

public interface Inter1 {
    int n1 = 10;
}

Fu.java
package program.Java_07.p1;

public class Fu implements Inter1 {
    int n2 = 20;
}

Test01.java
package program.Java_07.p2;

import program.Java_07.p1.Fu;

public class Test01 {
    public static void main(String[] args) {
        Fu fu = new Fu();
        System.out.println(Fu.n1);
        //System.out.println(Fu.n2);
    }
}

证明接口的成员变量n1是由public修饰的,不同包下仍然可以访问到
而类Fu中的成员变量n2是由defult修饰的,不同包下不能访问
在这里插入图片描述


至此,证明接口成员变量的默认修饰符的所有关键字就都证明完毕了!😊
有其他问题或者哪里不严谨的地方,欢迎评论区里留言。
如果有帮助的话,可以求个赞不😭

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值