首页 > 编程语言 > 详细

转行小白成长路-java篇

时间:2020-02-27 21:32:57      阅读:24      评论:0      收藏:0      [点我收藏+]

标签:运行时异常   小白   多继承   参数   周期   对比   

第9章:接口

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

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

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

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

转行小白成长路-java篇

标签:运行时异常   小白   多继承   参数   周期   对比   

原文:https://www.cnblogs.com/aiwin/p/12374246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号