您的位置:首页 > 编程语言 > Java开发

java的抽象类和接口的区别

2017-03-29 21:43 169 查看
通过对接口和对抽象类的概念的了解,我大概总结如下:

1、抽象类是为了描述事物而定义的一系列没有实现的方法,而接口我个人觉得就是一种特殊的抽象类

· 2、

一、抽象类中可以定义抽象的方法也可以定义非抽象的方法,但是前提是:

抽象方法有abstract,非抽象的方法必须方法体

子类继承抽象类,抽象类中的抽象方法必须继承,至于非抽象的方法已经实现了,就不需实现了,如果实现它们了,那就叫覆盖。

二、接口中只能有抽象方法,即使你不写abstract,它默认也是抽象的,

子类实现接口,接口中的方法必须都实现。如果子类实现接口,但不实现它的方法,那么子类就必须是抽象类;

子类继承抽象类,如果不实现它的方法那么就必须是抽象类

3、抽象类中可以定义常量,但是接口中只能定义public static final 的常量,我了解了一下,接口中为什么只能定义static final的常量,

(1)、接口是多实现,这样一个子类可以实现多个接口,这样如果接口中不定义成static,那么子类中就有可能出现多个相同的变量了;

(2)、如果一个接口被多个子类实现,这样的话,如果各个子类都在各自内部修改变量,那么变量的值不就乱套了吗?

4、接口和抽象类都是不可以实例化对象的,当然抽象类中可以有main方法的,

    5、其实在jdk1.8中,接口中是定义非抽象方法’的

 default void add() {}

    static void a(){ }

至于其他的一些区别,可能是我当前还没有想到,就没写了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  接口 抽象类