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.如果一个类继承了一个抽象类,就必须实现这个父类的所有抽象方法,否则这个类也是一个抽象类。

      

       

  • 相关阅读:
    JSP的动态Include的静态Include
    JAVA观察者模式
    JAVA单例模式
    【转】 linux 安装nginx及编译参数详解
    【转】Linux下nginx配置https协议访问的方法
    【转】./configure && make && make install详解
    【转】linux下如何查看某个软件 是否安装?安装路径在哪
    【转发】查看Linux版本系统信息方法汇总
    【转发】CentOS 7 巨大变动之 systemd 取代 SysV的Init
    【转发】centos 7安装完后出现please make your choice from '1' ......
  • 原文地址:https://www.cnblogs.com/Zchaowu/p/7476430.html
Copyright © 2011-2022 走看看