
本文共 1333 字,大约阅读时间需要 4 分钟。
一、接口
接口是多个类的公共规范,是一种引用数据类型。
//定义格式:public interface 接口名称{ 接口内容}
接口中包含的内容:
1、成员变量。其实就是常量 格式如下:
[public] [static] [final]数据类型 常量名称=数据值。常量必须进行赋值,而且在赋值之后不能被改变,常量的名称必须用大写而且用下划线进行分割。
2、抽象方法。接口中组重要的部分。 格式如下:
[public][abstract] 返回值类型 方法名称(参数列表);实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
3、Java8开始,接口允许定义默认方法。 格式如下:
[public] default 返回值类型 方法名称(参数列表){ 方法体}默认方法也可以覆盖重写
4、Java8开始,接口允许定义静态方法, 格式如下:
[pulbic] static 返回值类型 方法名称(参数列表){ 方法体}通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
5、Java9开始,接口允许定义私有方法 格式如下:
//普通私有方法private 返回值类型 方法名称(参数列表){ 方法体}//静态私有方法private static 返回值类型 方法名称(参数列表){ 方法体}private的方法只有接口自己才能使用,不能被实现类或别人使用。
使用接口的注意事项:
1)、接口是没有静态代码块或者构造方法的
2)、一个类的直接父类是唯一的,但是一个类可以同时实现多个接口
3)、如果实现类所有的多个接口当中,存在重复的抽象方法,只需要覆盖重写一次即可
4)、如果实现类没有覆盖重写所有接口当中的抽象方法,那么这个类必须是一个抽象类
5)、如果实现类所实现的所有接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写
6)、一个类如果直接父类当中的方法和接口当中的方法产生了冲突,优先用父类当中的方法
二、抽象类
*抽象方法,就是普通加上abstract关键字,然后去掉大括号,直接分号结束abstract ovid method();*抽象类:抽象方法所在的类必须是抽象类
注意事项:
1、抽象类使用abstract修饰;
2、抽象类不能实例化,即不能使用new关键字来实例化对象;
3、含有抽象方法(使用abstract关键字修饰的方法)的类是抽象类,必须使用abstract关键字修饰;
4、抽象类可以含有抽象方法,也可以不包含抽象方法,抽象类中可以有具体的方法;
5、如果一个子类实现了父类(抽象类)的所有抽象方法,那么该子类可以不必是抽象类,否则就是抽象类;
6、抽象类中的抽象方法只有方法体,没有具体实现;
三、什么时候使用接口,什么时候使用抽象类?
接口和抽象类的使用时is和has的区别,例如:人类中男人、女人和小孩都是人,具有人的一些基本特征,那么人和【男人、女人和小孩】之间的关系就是is,那么人类(Person)就需要定义为抽象类。但是对于游戏,相对于手机、电脑、平板等都是has关系,因为后三者对于游戏可有可无,所以需要使用接口。
参考链接:
发表评论
最新留言
关于作者
