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(){ }
至于其他的一些区别,可能是我当前还没有想到,就没写了
1、抽象类是为了描述事物而定义的一系列没有实现的方法,而接口我个人觉得就是一种特殊的抽象类
· 2、
一、抽象类中可以定义抽象的方法也可以定义非抽象的方法,但是前提是:
抽象方法有abstract,非抽象的方法必须方法体
子类继承抽象类,抽象类中的抽象方法必须继承,至于非抽象的方法已经实现了,就不需实现了,如果实现它们了,那就叫覆盖。
二、接口中只能有抽象方法,即使你不写abstract,它默认也是抽象的,
子类实现接口,接口中的方法必须都实现。如果子类实现接口,但不实现它的方法,那么子类就必须是抽象类;
子类继承抽象类,如果不实现它的方法那么就必须是抽象类
3、抽象类中可以定义常量,但是接口中只能定义public static final 的常量,我了解了一下,接口中为什么只能定义static final的常量,
(1)、接口是多实现,这样一个子类可以实现多个接口,这样如果接口中不定义成static,那么子类中就有可能出现多个相同的变量了;
(2)、如果一个接口被多个子类实现,这样的话,如果各个子类都在各自内部修改变量,那么变量的值不就乱套了吗?
4、接口和抽象类都是不可以实例化对象的,当然抽象类中可以有main方法的,
5、其实在jdk1.8中,接口中是定义非抽象方法’的
default void add() {}
static void a(){ }
至于其他的一些区别,可能是我当前还没有想到,就没写了
相关文章推荐
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别(来自:java060515)
- 抽象类与java接口的区别
- Java 抽象类和接口的区别
- [转]解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别(来自:java060515)
- 详细解析Java中抽象类和接口的区别
- java里抽象类和接口的区别
- java中抽象类与接口的区别
- Java中的抽象类和接口的区别与联系
- 详细解析Java中抽象类和接口的区别
- java里抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- Java中抽象类和接口的区别
- Java的接口和抽象类的区别
- 详细解析Java中抽象类和接口的区别
- 学JAVA必须知道:抽象类与接口的区别
- 学JAVA必须知道:抽象类与接口的区别
- 解析Java中抽象类和接口的区别
- 解析Java中抽象类和接口的区别