zoukankan      html  css  js  c++  java
  • Java 抽象类和接口有什么差别

    抽象类和接口有什么差别?

    1、 抽象类在java语言中所表示的是一种继承关系,一个子类仅仅能继承一个父类。可是能够实现多个接口。

    2、 在抽象类中能够拥有自己的成员变量和非抽象类方法,可是接口中仅仅能存在静态的不可变的(public static final)成员数据(只是一般都不在接口中定义成员数据)。并且它的全部方法都是抽象的。

    3、抽象类的子类能够部分实现父类中的抽象方法。可是它们本身也是抽象类; 而当类实现特殊接口时,它定义全部这样的接口的方法。

    4、抽象类和接口所反映的设计理念是不同的,抽象类所代表的是“is-a”的关系,而接口所代表的是“like-a”的关系。

    5抽象方法能够有publicprotecteddefault这些修饰符,接口方法默认修饰符是public。不能够使用其他修饰符。

    6、加入新方法:假设往抽象类中加入新的方法。能够给它提供默认的实现,不须要改变如今的代码。

    假设往接口中加入方法,必须改变实现该接口的类


    什么时候用抽象类什么时候用接口

    1. 假设估计要创建组件的多个版本号,则创建抽象类。抽象类提供简单易行的方法来控制组件版本号。通过更新基类,全部继承类都随更改自己主动更新。还有一方面。接口一旦创建就不能更改。假设须要接口的新版本号,必须创建一个全新的接口。

    2. 假设创建的功能将在大范围的全异对象间使用,则使用接口。

    抽象类应主要用于关系密切的对象。而接口最适合为不相关的类提供通用功能。

    3. 假设要设计小而简练的功能块。则使用接口。

    假设要设计大的功能单元,则使用抽象类。

    4. 假设要在组件的全部实现间提供通用的已实现功能,则使用抽象类。抽象类同意部分实现类。而接口不包括不论什么成员的实现。


  • 相关阅读:
    burp用命令行一键启动出现错误“a java exception has occurred”的解决
    fofa语法
    使用LaZagne获取各种密码
    获取网站ico图标以及使用shodan的http.favicon.hash方法搜同ico站点
    使用nmap-converter.py整理nmap导出的xml记录为xls文件
    使用wafw00f工具识别waf类型
    反射型XSS中的POST型复现
    锐捷统一上网行为管理与审计系统信息泄露漏洞复现(CNVD-2021-14536)
    软件工程 数组
    c语言4
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6696448.html
Copyright © 2011-2022 走看看