抽象类和接口的区别

心不动则不痛 提交于 2020-02-17 11:51:58

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

  

 

   

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!