接口的注意事项:
1.接口不能被实例化
2.接口中所有的方法都不能有主体
接口是更加抽象的类
3.一个类可以实现多个接口
4.接口中可以有变量(但变量不能用private和protected修饰)
a接口中的变量,本质上都是static的,不管加不加static修饰
b在java开发中,我们经常把常用的变量,定义在接口中,作为全局变量,访问形式:接口名.变量名
5.一个接口不能继承其他的类,但是可以继承别的接口。
接口的解决之道
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。语法:
class 类名 impliments 接口
{
方法;
变量;
}
小结:接口是更加抽象的类,抽象类里的方法可以有很多方法体,可口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低耦合的设计思想。
实现接口vs继承类
java的继承是单继承,也就是一个类最多只能有一个父类,这种单继承的机制可以保证类的纯洁性,比c++中的多继承机制简洁。但是不可否认,对于子功能的扩展有一定影响,所以我们认为:
(1)接口可以看做是对继承的一种补充
还有一点,继承是层级式的,不太灵活。这种结构修改某个类就会打破这种继承的平衡,而接口就没有这样的烦恼,因为它只针对实现接口的类才起作用。所以
(2)实现接口可在不打破继承关系的前提下,对某个类功能扩展,非常灵活。
继承是多态得以实现的基础。从字面上理解,多态就是一种类型表现出来的多种状态。将一个方法调用同这个方法所属的的主体(也就是对象和类)关联起来叫做绑定,分前期绑定和后期绑定两种。下面解释一下他们的定义。
1.前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。比如static方法和final方法,注意,这里也包括private方法,因为他是隐式final的。
2.后期绑定:在运行是根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动态绑定,或者运行时绑定,除了前期绑定外的所有方法都属于后期绑定。
多态就是在后期绑定这种机制上实现的。多态给我们带来的好处是消除了类之间的耦合,使程序更容易扩展。
《韩顺平java从入门到精通》笔记