【Java】接口和抽象类
发布日期:2021-05-04 18:13:51 浏览次数:32 分类:精选文章

本文共 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关系,因为后三者对于游戏可有可无,所以需要使用接口。

参考链接:

上一篇:【日常交流】浅析MVC、MVP和MVVM
下一篇:【Java】Java面向对象之封装、继承、多态

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月03日 06时19分16秒