zoukankan      html  css  js  c++  java
  • 抽象类和接口的区别

    继承与实现: 1.抽象类可以被子类继承,接口既可以被继承也可以被实现。

    方法:            2.抽象类可以做方法声明也可以做方法实现,接口只能做方法声明

    变量:            3.抽象类内定义的变量是普通变量,接口定义的变量只能是公共的静态的变量。

     4.如果一个类里面有抽象方法,那么这个类只能是抽象类

     5.抽象方法要被实现,所以抽象方法不能是静态的,也不能是私有的

     6.抽象方法只能声明,不能实现

    补充:

    接口:接口内的定义的成员变量都是静态的常量,都是必须是被public static final修饰的,就算你定义的时候没有加修饰符,系统也会帮你加上去。

       

       接口内的方法都是抽象方法,就算你定义的时候没有加上abstract,系统也会帮你加上。而且,接口内的方法不能用private或protectd修饰,只能用public或者默认,默认的话最后会   被自动转成public。

       修饰接口的修饰符可以是public、friendly,但是一定是abstract的。

       继承指定接口的类,必须重写并实现该接口所有的方法,否则该类就是抽象类。

        

    抽象类:含有一个或多个抽象方法的类就是抽象类,但是抽象类不一定需要含有抽象方法,例如你定义一个类为abstract,但是这个类里边不含有抽象方法也是可以的,只是意义不大。

        抽象类和普通类的区别大致有3点:

        1.抽象类不能实例化,抽象类只能用public和firendly修饰。

        2.抽象类的方法不能用private修饰,public、protected、默认都可以

        3.如果一个类继承了一个抽象类,就必须实现这个父类的所有抽象方法,否则这个类也是一个抽象类。

      

       

  • 相关阅读:
    redis实现分布式缓存
    redis持久化
    Redis五种数据类型
    Azure Digital Twins(1)-创建实例并设置角色
    Azure Digital Twins(2)- 在本地使用ADT Explorer 管理数字孪生
    Azure Digital Twins(3)- 数字孪生体和数字孪生图
    Azure + 5G + AI + IOT可以这么玩
    使用Azure Storage API 上传 文件解决微信小程序中上传图片的问题
    Azure入门(1)- Azure核心概念
    利用 Management Group 和Policy 控制Azure 指定资源的创建
  • 原文地址:https://www.cnblogs.com/Zchaowu/p/7476430.html
Copyright © 2011-2022 走看看