zoukankan      html  css  js  c++  java
  • 转行小白成长路-java篇

    第9章:接口

      抽象类是对事物不完全的抽象,而接口更甚,连指向都没有。接口是不同于抽象类,更不同于普通类。只要明白接口没有指向,也就能理解为什么关键字不同了。不管是抽象类还是普通类都是class,他们都继承自object类,表示的都是对象。而接口是interface,它可以不表示任何对象(也可以有指向哪一类事件),和object是同一级的存在,所以关键字不同还是可以理解的。

      有几点是需要注意的,因为接口并没有具体指向,也就不能生成对象,同时也表示它没有构造器,没有构造器说明它不能在堆中初始化,所以它的成员变量的生命周期都是跟随类的,也就是说都需要是static final 的,这点是正常的思维逻辑。虽然接口的属性(因为没有对象,所以不能称作成员变量)非常适合用作常数,但有枚举(enum)更适合,功能更好。其次因为抽象类有指向,只是抽象的不完全,所以抽象类是单继承,而接口没有完全指向也就说明它是可以多继承的,但是接口不能实现接口,毕竟接口没有明确的指向。接口中方法的访问权限都需要限定成public,因为接口里面的方法就是表示要完成的动作,也是不管哪一类对象都要有的,所以做成public 没有太大的问题。嵌套的意义我真的没有弄明白,如果有体会可以讨论下。

      灵活性接口是更要强一些的,因为多实现,所以生成的对象可以用到所有接口作为参数的方法中。至于什么时候用接口,何时用抽象,书中的大意是看方法是否有定义。翻译成我的语言就是是否有指向,是否确定了指向哪一类的对象。再具体一些就是如果要实现某些方法作为主体,就用接口定义;方法有定义,或者就要描述一类对象就用抽象类。用树状图分析,一层一层向下分。具体的设计例子就是throwable--向外抛出,主要就是抛出动作,以抛出这一系列方法为主。用的接口定义,然后又分为异常和错误等来继续抛出动作(方法),异常部分又分为运行时异常和检查异常来执行异常的动作(方法),最后具体的类来实现运行时异常和检查异常的动作(方法)。

      猜测一下存储的运行方式对比继承抽象类,因为抽象类和接口不会用new来创建对象,所以也就说明他们主要是以文件的形式存在。所以他们更应该是前期绑定,在文件加载的时候会检查。如果不对没等项目启动就会出错。

  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/aiwin/p/12374246.html
Copyright © 2011-2022 走看看