关于java中接口中默认修饰符的一些思考

本文详细解析了Java接口中的属性和方法的默认修饰符,强调了public、static和final的重要性,以及为什么抽象方法是接口的核心。重点介绍了interface在设计规范中的角色和属性初始化的特殊性。
摘要由CSDN通过智能技术生成

以下内容均为个人理解,若有不当之处望批评指正

abstract interface AnimalInterface {
/**
 * 属性:interface 中的属性默认且必须是 public static final 且必须被初始化
 *     首先我们要清楚interface的创造初衷即能胜任作为和外部系统打交道的合同,就是接口是实现类的标准和规范。
 *     明白了这点再来解释这三个修饰符
 *     public:既然接口的初衷就是作为和外部系统打交道的合同,我并不知道未来外部别人怎么用我们的接口,所以尽量少给别人设置障碍(少添点堵),
 *             就设置权限为public,出于这种考虑,Sun公司一开始就规定,接口属性和方法默认就为public。
 *     static:可以从两个方面去考虑
 *             1.接口没有构造方法,即没有办法实例化,反向考虑,如果有成员属性,但没有办法实例化这些成员属性也无法发挥作用
 *             2.接口是面向外部系统的,外部系统如何使用接口存在很大的未知性,将属性设置为static则未来的子类的static方法也能访问到它,可以最大限度的发挥接口属性的功能。
 *     final:final就很好理解了,既然是合同,那当然不能被轻易的改变
 *     必须被初始化:Java中每一个类都有构造方法(抽象类也需要有),而接口没有构造方法
 *                因此接口不能调用构造方法初始化其属性只能在定义时写出默认值
 *
 * 方法:interface中的方法默认修饰符为public abstract
 *     public:理解同属性的public
 *     abstract:接口之所以称之为接口就是因为abstract,不做解释
 *     
 * 接口:interface定义时的默认修饰符为 abstract
 */
    int age0 = 0;
    public int age1 = 1;
    public static int age2 = 2;
    public static final int age3 = 3;
    
    void fun0();
    public void fun1();
    public abstract void fun2();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我橘子超酸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值