1.接口:
只能放静态常量、抽象方法
接口前的修饰符可以加public 、abstract、也可以都不加
2.接口特性:
接口不可以被实例化
实现类必须实现接口的所有方法,否则实现类必须是抽象类
实现类可以实现多个接口,来弥补java不能多继承
接口中的变量都是静态常量
3.接口是一种规范
接口是一种规范
面向接口编程
体现在接口名称和注释上(有些接口只有名称、方法的实现方式要通过注释来约定)
程序设计时面向接口的约定而不考虑具体实现
单一职能原则
4.接口的优点
可以被多继承(接口可以继承多个接口、一 个类可以实现多个接口)
设计和实现完全分离
更自然的使用多态
更容易搭建程序框架
更容易更换实现
5.接口和抽象类的区别
本质区别,class和interface关键字不同。抽象类是类,接口是规范
接口可继承接口,并且可多继承接口,但类只能单根继承
接口只能做方法声明,抽象类中可以做方法声明,也可以做方法实现
抽象类能够保证实现的层次关系,而接口则是能够有效地分离行为与实现
继承:先天形成、纵向的
接口:后天生成、横向的
6.常量:
常量是一种标识符,它的值在运行期间恒定不变
常量标识符在程序中只能被引用,而不能被重新赋值
public static final double A = 20
.
2;
程序的可读性变差:用户很难理解数字或字符串的意思
程序的可维护性变差:如果数值改变,则需要在很多地方改动,既麻烦又易出错
常量的优点
:
可以增强程序的可读性、可维护性
补充:匿名类
定义:
匿名类是不能有名字的类,他们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行是时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
作用:
匿名类的目的是在某个地方需要特殊的实现,因此在该处编写其实现,并获取他的实例,调用它的方法。不要在匿名内部类编写其他的方法,是不可见的
匿名类(匿名实现类):A a = new A(){方法实现} a
.
方法名()
;
匿名抽象类(匿名子类)