• 抽象类与接口区别


    抽象类与接口简单区别

     抽象方法属于一种不完整的方法,只有一个声明,没有方法主体。

    相同点:都是不断向上抽取而得到的,

    不同点:

    1.抽象类需要被继承,且为单继承;接口需要被实现,可以多继承(多重继承)。

    2.抽象类中可以定义抽象方法和非抽象方法,子类继承后可以直接使用抽象方法;接口(不能有实例域即成员变量)中一般为抽象方法(public abstract)和全局常量(public static final),javaSE8后新增静态方法(public static一般为接口伴随使用工具,之前不允许有)和默认方法(default默认实现接口方法,可以被覆盖),接口中的抽象方法必须实现类实现。

    3.抽象类的继承为is-a关系,定义该体系的共性内容;接口的实现为like-a关系,定义体系的额外功能。

    4.关于接口和抽象类中有无构造方法的区别:

    在接口中不允许有构造方法,构造方法一般用于初始化成员变量,但是在接口中不允许有成员变量;类能够实现多个接口,若多个接口都有自己的构造函数,会造成创建实例时出现调用的不确定性。

    在抽象类中允许有自己的构造方法,只是不能直接构建,可以交给子类去使用(间接调用)。

    心得:某类对象抽象出的共有的特性定义为抽象类,抽象出的特有特征(特征不止一个)定义为接口。共性与特性在生活中是存在并且常见的,而且相对于不同群体对象定义是不同的,要视具体应用群体对象具体分析哪些用抽象类,哪些用接口。

    笔记本电脑使用描述:

    为了扩展笔记本的功能,但日后出现什么功能并不知道?

    所以为笔记本定义一个规则USB接口,即就java中的接口(接口变量传递),日后出现的设备只要符合这个规则即可。

    规则(接口)定义是为了在某个外部设备(实现类)中实现(implements),例如在优盘中实现usb插口,所以这个插口(对象)会扔到笔记本USB接口上应用。

    定义规则(接口),使用规则(接口实现类参数接收),实现规则(实现类)。

  • 相关阅读:
    什么是线程安全和线程不安全
    C# 实现Dictionary数据对象的深度拷贝
    数据库设计三大范式
    Socket 短连接、长连接
    第二篇:MongoDB高级查询
    如何在oracle中导入导出dmp数据库文件
    以太网中的UDP编程:udp分包问题
    CocosBuilder 值得关注的一个新项目
    [转载]iPhone程序到iPad程序的移植问题
    DWR使用总结
  • 原文地址:https://www.cnblogs.com/Sword007/p/9703390.html
Copyright © 2020-2023  润新知