12.接口:implements
接口 :implements
创建文件 :
new----- interface
public interface DemoInterface {
public void demo();
}
接口的声明的属性默认是 public static final ,也只能是 public static final .
接口中只能定义抽象的方法,而且这些方法默认是public的,也只能是public的
接口可以继承其他的接口,并添加新的属性和抽象方法
接口的特性:
1.接口不能被实例化(abstract抽象)
2.实现类必须实现接口的所有方法,否则实现类必须是抽象类
3.实现类可以实现多个接口,来弥补java不能多继承(不同接口之间用“,”逗号分隔)
4.接口中的变量都是静态常量
接口的实现类:
创建文件 :
new--class--interface--add--接口的文件(可以为多个)
接口是一种规范:
体现在接口名称和注释上
有些接口只有名称,方法的实现方式要通过注释来约定
面向接口编程:
程序设计时面向接口的约定而不需要考虑具体的实现
接口的优点:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
继承和接口的使用
拥有相同的属性和方法:继承
后期可以添加功能:接口
接口和抽象类的区别:
练习1:
补充:常量
常量是一种标识符,它的值在运行期间恒定不变
常量标识符在程序中只能被引用,而不能被重新赋值
常量的优点:(增加程序的可读性,可维护性)
如果不使用常量,程序的可读性变差:用户很难理解数字或字符串的意思
如果一个数值在多个地方被用到,当数值发生改变时,则需要在很多地方改动,既麻烦又容易出错
匿名类
定义:
匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的实例。
作用:
匿名类的目的是在某个地方需要特殊的实现,因此在该处编写其实现,并获取它的实例,调用它的方法。不要在匿名内部类编写其他方法,是不可见的。