抽象类与接口的异同
2017-03-08 11:04
225 查看
相同:都不能被实例化;接口的实现类或抽象类的子类都只有实现了接口或者抽象类的方法后才能被实例化。
不同:接口中只有方法的定义,不能有方法的实现;抽象类中既可以有方法的定义,也可以部分实现;
一个类可以实现多个接口,但是只能继承一个抽象类;接口强调的是特定功能的实现,是一种“has a”关系;抽象类强调的是所属关系,是一种“is a”关系;
接口中的成员变量默认的是“public static final”,只能够有静态的不能被修改的数据成员,并且必须给其赋初值,成员方法只能被public abstract修饰;
注意:当功能需要积累时,用抽象类;不需要积累时,用接口;接口用于实现比较常用的功能,便于日后维护或者添加删除方法;抽象类更倾向于充当公众类的角色,不适合以后代码的修改;抽象类适用于要在同类事物中有无法具体描述的方法的场景,当子类与父类存在逻辑上的关系的时候,推荐使用抽象类 ;接口多用于不同类之间,定义不同类之间的通信规则,当希望支持差别较大 的两个或者更多对象之间特定交互行为,使用接口。
接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类,抽象类也可以有静态的mian方法
不同:接口中只有方法的定义,不能有方法的实现;抽象类中既可以有方法的定义,也可以部分实现;
一个类可以实现多个接口,但是只能继承一个抽象类;接口强调的是特定功能的实现,是一种“has a”关系;抽象类强调的是所属关系,是一种“is a”关系;
接口中的成员变量默认的是“public static final”,只能够有静态的不能被修改的数据成员,并且必须给其赋初值,成员方法只能被public abstract修饰;
注意:当功能需要积累时,用抽象类;不需要积累时,用接口;接口用于实现比较常用的功能,便于日后维护或者添加删除方法;抽象类更倾向于充当公众类的角色,不适合以后代码的修改;抽象类适用于要在同类事物中有无法具体描述的方法的场景,当子类与父类存在逻辑上的关系的时候,推荐使用抽象类 ;接口多用于不同类之间,定义不同类之间的通信规则,当希望支持差别较大 的两个或者更多对象之间特定交互行为,使用接口。
接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类,抽象类也可以有静态的mian方法
相关文章推荐
- 抽象类和接口的异同点
- 抽象类和接口之异同
- 抽象类与接口之间的异同
- 抽象类(abstract class)和接口(interface)有什么异同?
- java中抽象类和接口的异同
- 接口和抽象类异同
- 抽象类(abstract class)和接口(interface)有什么异同?
- Java 接口和抽象类的异同点
- 抽象类(abstract class)和接口(interface)有什么异同?
- 抽象类(abstract class)和接口(interface)有什么异同?
- 接口和抽象类的异同
- 抽象类(abstract class)和接口(interface)有什么异同?
- 从面向对象设计谈接口和抽象类的异同
- PHP抽象类与接口的异同
- 接口和抽象类的异同点
- JAVA.抽象类与接口的几个特点与异同
- java 抽象类与接口的异同
- java中抽象类和接口异同
- java中抽象类和接口的异同点
- 抽象类(abstract class)和接口(interface)有什么异同?