您的位置:首页 > 其它

抽象类与接口的异同

2017-03-08 11:04 225 查看
相同:都不能被实例化;接口的实现类或抽象类的子类都只有实现了接口或者抽象类的方法后才能被实例化。

不同:接口中只有方法的定义,不能有方法的实现;抽象类中既可以有方法的定义,也可以部分实现;

一个类可以实现多个接口,但是只能继承一个抽象类;接口强调的是特定功能的实现,是一种“has a”关系;抽象类强调的是所属关系,是一种“is a”关系;

接口中的成员变量默认的是“public static final”,只能够有静态的不能被修改的数据成员,并且必须给其赋初值,成员方法只能被public  abstract修饰;

注意:当功能需要积累时,用抽象类;不需要积累时,用接口;接口用于实现比较常用的功能,便于日后维护或者添加删除方法;抽象类更倾向于充当公众类的角色,不适合以后代码的修改;抽象类适用于要在同类事物中有无法具体描述的方法的场景,当子类与父类存在逻辑上的关系的时候,推荐使用抽象类 ;接口多用于不同类之间,定义不同类之间的通信规则,当希望支持差别较大 的两个或者更多对象之间特定交互行为,使用接口。

接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类,抽象类也可以有静态的mian方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: