接口 vs 抽象类 && 接口中 public/static/final 设计的原理

  

 

抽 象 类

接 口

   成员函数     

      抽象/ 非抽象

 默认 public  abstract

   成员变量

      普通 、非普通

默认 public  static  final

   属性访问权限   

      自定义

 默认 public  static

(原理: "模版"的实现类的共有特性,所以它是public static的)

   实例化

    可以有构造方法,但不能实例化       

     Cannot instantiate the type xxx

无构造方法,不能被实例化

Interfaces cannot have constructors.

   应用角度

     实现代码重用,

    多见于代码实现方面

                                        定义模块之间通信契约,

                                 多见于系统架构设计时发挥作用

 

 

   联系

 

接口是一种特殊的抽象类。


派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)


不能实例化;


包含未实现的方法声明;


除了被继承,没有任何意义。


抽象类是对象的抽象,然而接口是一种行为规范。



=================================================================================================================================



1.常量使用public static final的原理:

final   定义常量。一次赋值,终身使用。Java中用final标识常量。

static  静态变量,全局访问。无需初始化对象,可用类名直接访问。只被分配一次内存,节约内存;不必初始化对象,使用方便。

public  接口作为模板,访问权限需要保证任意访问。



2.  static

成员变量和成员函数:如若是static,可用   ClassName.variableName   / ClassName.functionName()  访问。

ps:

静态方法使用原则:1,有且只能调用其他static方法    2,只能访问static 变量   3, 不能用super,this



类: 如若是static, 一般普通类不支持设为静态类。常用于内部类。无需实例化外部类。 



3.JVM 加载顺序:

静态成员变量 --> 静态代码块 -->  同等级按照前后顺序加载















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值