抽象类和接口的关系对比

来源:互联网 发布:cl.1c5.co index.php 编辑:程序博客网 时间:2024/05/01 20:54

抽象类
抽象类主要用来定义一些抽象的属性和方法,留待子类根据自己的情况实现这些属性和方法
抽象类不能生成实例,即不能new一个抽象类的实例
抽象类可以被继承,除非继承该抽象类的子类仍声明为抽象的,否则就必须实现这个抽象类的所有抽象属性和方法
一个类只能继承一个抽象类,如果需要实现多个类的抽象方法,必须使用接口
子类与抽象类是is关系
接口
接口主要用来定义一些抽象的属性和方法,留待实现类根据自己的情况实现这些属性和方法
接口不能生成实力,即不能new一个接口的实例
抽象类可以被实现,除非实现该接口的类声明为抽象的,否则就必须实现这个接口的所有抽象属性和方法
一个类可以实现多个接口
实现类与接口是has关系 

说明:这里面有些地方可能需要改动,具体请参见本人的另一篇文章《接口(interface)原来是可以被继承(extends)的》。