接口,抽象类以及它们的区别
来源:互联网 发布:java线程与进程的区别 编辑:程序博客网 时间:2024/05/18 03:02
一、抽象类
如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。它的出发点就是为了继承,抽象类有方法体但是抽象方法没有方法体
在使用抽象类时需要注意几点:
1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
2、抽象方法必须由子类来进行重写,也就是说抽象类中的抽象方法子类必须实现它。如果子类没有实现它的抽象方法那么子类也是抽象类。
3、只要包含一个抽象方法就是抽象类。
4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
5、子类中的抽象方法不能与父类的抽象方法同名。
6、abstract不能与final并列修饰同一个类。
7、abstract 不能与private、static、final或native并列修饰同一个方法。
二、接口
一个类可以 实现 多个接口
接口中的常量和方法必须是public的访问权限,可以写出来或者不写,不写就是默认,接口中的方法没有方法体,接口 只能用 public 和 abstract 修饰
1.在接口中只有方法的声明,没有方法体。
2.接口中所有的方法必须都是抽象的,接口中也可以定义数据成员,但必须是常量
3.接口中没有构造方法,也不能实例化接口的对象。
4.接口可以实现多继承
5.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法,.则实现类定义为抽象类。
6.接口中不能包含静态方法
三、联系
1 接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。
2 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类(子类若为抽象类除外)都必须实现这些抽象方法。
四、区别
1. 一个子类只能继承一个抽象类,但能实现多个接口
2. 抽象类可以有构造方法,接口没有构造方法
3. 抽象类可以有普通成员变量,接口没有普通成员变量
4. 抽象类和接口都可有静态成员变量,抽象类中静态成员变量访问类型任意,接口只能public static final(默认)
5. 抽象类可以没有抽象方法,抽象类可以有普通方法,接口中在JAVA8之前都是抽象方法,但是接口在JAVA8之后有了默认方法
6. 抽象类可以有静态方法,接口不能有静态方法
7. 抽象类中的方法可以是public、protected;接口方法只有public
- 接口,抽象类以及它们的区别
- 抽象类和抽象方法以及和接口的区别
- 抽象类以及接口区别
- 【JAVA中抽象类与接口的区别,分别在什么情况下使用它们】
- JAVA中抽象类与接口的区别,分别在什么情况下使用它们
- 类,对象,以及它们的区别
- 抽象类和接口的区别 以及选择抽象类和接口的应用场景
- 类、抽象类以及接口的区别(NO.1)
- C++中的抽象类以及接口的区别联系
- 抽象类与接口的应用以及区别
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- C++中的抽象类以及接口的区别联系
- 地道美语听力播客 2
- 找寻链表中环的入口结点
- Intersection of Two Arrays II
- JAVA按位运算
- 逆序数
- 接口,抽象类以及它们的区别
- (ssl1000)P1001 A+B Problem(c++)
- leetcode/two-sum
- ICDAR2013文本检测算法的衡量方法(二)Rectangle Matching与DetEval
- JVM学习笔记(三)------内存管理和垃圾回收
- QTcpSocket的连续发送数据和连续接收数据
- myeclipse安装SVN插件
- 递归算法
- 阶乘的因式分解(一)