java拾遗之abstract class 与 interface

来源:互联网 发布:js获取div高度并赋值 编辑:程序博客网 时间:2024/04/28 21:16

说实在的,一直到现在为止,大学加上工作与java打交道的时间也有好几年了,然后前段时间发现我本身对java只是一种用的状态,但实际对于java一些细颗粒的东西看着总是一知半解,有人说,知识只有你给别人讲明白了才能算是真正的会了,我抽了时间稍微整理下了一些知识点,发现确实好多东西都模糊甚至不懂.....因此想一个个针对不是特别明确的点做下拾遗。

本篇是abstract calss 与 interface,本打算是从关键字梳理开始的,看到相互关联也就顺手带上吧。初看这两个概念时,脑子里一闪而过的就是继承和实现,java没有多继承的机制,接口是可以多实现的,只能是借助单继承多实现来做一个折中方案。但是abstract class可以继承一些可以共用的方法,interface中都是需要实现的抽象方法。这个没有明确的优劣之分,搭配使用能够相得益彰。ok,先从关键字abstract详细说起,顾名思义,抽象,java是一门面向对象的语言,所以需要将不同对象的公共点提取出来形成一个公共的类或接口,这便是我理解的抽象,而抽象就需要关键字abstract了,它只能用于类和方法,它不能和static、final、native一起使用。在class中定义抽象方法时需要需要加上关键字abstract,继承该类后需要重写该方法或是子类也定义成抽象类。在interface中的写法中抽象方法有时并没有abstract,这是因为在interface中方法前是默认加上public abstract的,只不过是可以省略的。

在实际的应用情况中抽象类和接口是配合使用的,在面向对象编程时,一个对象应当只包含自己本身的属性以及动作,在加入其它对象相关拓展功能时应该通过接口的方式实现,一来是符合面向对象编程的思想,二来是便于代码维护。

0 0
原创粉丝点击