Java编程思想之9接口
来源:互联网 发布:兔狗家装网怎么样知乎 编辑:程序博客网 时间:2024/05/17 18:02
这一章比较简单了,跟前面的封装继承多态比起来,比较简单了。
我开始学java的时候,一直弄不懂接口到底什么???怎么说它就帮助Java首先多重继承了。
接口是什么??
interface是一个极度抽象的类,它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现某种类似多重继承变种的特性。
这是《java编程思想4》第172页的一段话。 首先要明确一点,接口是一个类。跟抽象类类似,比抽象类更抽象。 以后见到接口,就可以当作,它是一种特殊的类。
它的特殊,主要特殊在一些规定上。普通类有普通类的规定,抽象类有抽象类的规定,极度抽象类(接口)有极度抽象类的规定。
它定义的所有方法仅仅有方法名,参数列表和返回类型。没有任何方法体。谁 implements这个接口,就要求谁实现这些方法。跟上一章多态类似,我完全可以声明一个接口变量,调用接口里面的方法,当这个方法真正运行时,根据这个接口变量的实际类型来调用相应的方法。这个实际类型里面一定有这个方法。因为它implements了这个接口,在语法上就必须实现这个接口的所有方法。这样做,当然就不会出任何问题。 所以,这样看起来,一个接口真的跟一个抽象类很像。
我们创建一个变量,都是让它来干某件事儿,即使是用它来保存信息,我们也可以用setXX()来实现。这样一来,我们用的所有变量,都是用它的某个功能,某个方法。这个正好恰恰是接口能干的。所以,完全可以是多重继承了,一个类实现了几个接口后。每个接口都可以这样的调用这个类的方法。这样,就跟多重继承很像很像了。
总之,interface就是一个极度抽象的类,具体类可以implements好几个interface,就可以表现出多个interface的功能方法,就实现了多重继承了。
既然我们可以在类上做一些规定,然后有了abstract class 。 就可以再加一些规定,变成 interface class。 这个比较有点长,就直接用interface了。
接口的一些小知识
- 接口作为一种特殊的类,有它自己的特性。
- 它所有的方法都没有方法体。没有实现的。
- 它的域隐式的是:static final 的。
- 它的方法是public 的。 所以实现这个接口的类的对应的方法,也应该是public。否这就会报错。 这个好理解,因为interface的变量必须能调用所有方法,你的权限变小了,有可能就不能调用了。这肯定不行的。
- 它比普通的基类,更容易解偶。如果一个方法操作的是类,那么就只能使用这个类或者其子类了。但是接口,就可以很大程度的消除这个限制。
- 一个类,它的父类实现了某个方法。那也行。子类implements某接口后,就不用再重新实现了。
使用接口的原因
核心原因:为了能够向上转型成多个基类型(以及由此带来的灵活性,带来的耦合度的降低)
第二原因:防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。(跟抽象类类似)
- Java编程思想之9接口
- Java编程思想之接口
- 9接口-Java编程思想
- java编程思想之接口泛型
- java编程思想--接口
- java编程思想-接口
- Java编程思想 -- 接口
- java编程思想--接口
- java编程思想 -- 接口
- Java编程思想接口
- JAVA编程思想--接口
- 《Java编程思想》第9章 接口
- 《Java编程思想》--接口--第9章
- 【Java编程思想】(5)接口
- Java编程思想-接口总结
- Java编程思想-09接口
- Java编程思想-5-接口
- JAVA编程思想学习总结:第9章接口
- Windows常见字体分析
- Ubuntu上安装git以及常用的指令学习
- 性能测试 负载测试 压力测试 容量测试
- SQLite多线程读写实践
- linux 学习二
- Java编程思想之9接口
- java 使用相对路径读取文件
- Linux U盘助手(一)
- linux乱入
- opencv 2.x学习笔记(九)简单绘图
- Oracle基本语句
- 二叉树中序遍历Java实现
- 黑马程序员_java基础篇之面向对象(1)
- java 大数题用BigInteger类,就很简单了