现在的位置: 首页 > 综合 > 正文

抽象类和接口的比较

2018年01月31日 ⁄ 综合 ⁄ 共 769字 ⁄ 字号 评论关闭

抽象类:

  1. 包含一个抽象方法的类必须是抽象类
  2. 抽象类和抽象方法都要使用abstract关键字声明
  3. 抽象方法只需要声明而不需要实现
  4. 抽象类必须被继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法

注意:抽象方法不要用private声明,如果使用private声明,子类将无法覆写

PS:抽象类允许构造方法,在子类对象实例化前会默认调用父类的无参构造

接口:

全局常量公共的抽象方法所组成.(所以代码二可简写成代码一)

代码一:

interface A{		// 定义接口A
	String AUTHOR = "Tom" ;	// 全局常量
	void print() ;	// 抽象方法
	String getInfo() ;	// 抽象方法
}

代码二:

interface A{		// 定义接口A
	public static final String AUTHOR = "Tom" ;	// 全局常量
	public abstract void print() ;	// 抽象方法
	public abstract String getInfo() ;	// 抽象方法
}

注意:接口中如果不写public,则也是public访问权限

实际应用:

抽象类的实际应用:可以用来设计模板(比如请假条)
接口的实际应用:可以用来指定标准(比如USB标准)

小结:

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。


抽象类与接口的关系
序号 区别点 抽象类 接口
1 定义 包含一个抽象方法的类 抽象方法和全局常量的集合
2 组成 构造方法,抽象方法,普通方法,变量,常量 全局常量,抽象方法
3 使用 继承/extends 实现/implements
4 关系 抽象类实现多个接口
5 常见设计模式 模板设计 工厂设计,代理设计
6 对象 通过对象的多态性产生实例化对象
7 局限 单继承
8 实际 做为模板 做为标准
9 选择 两者都可用时,优先使用接口,避免单继承
10 特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

抱歉!评论已关闭.