抽象类与接口

链接: http://blog.csdn.net/chenssy/article/details/12858267

抽象类是对类抽象,而接口是对行为的抽象

抽象类可以说算是对类的一种约束规范,具有类似的特征,我们把这些特征抽象封装到一个类里

抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。

对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的, 仅仅是实现了接口定义的契约而已。

接口根本就不需要知道子类的存在,只需要定义一个规则即可

 

抽象类以及其下的抽象方法用abstract关键字修饰

 

接口创建时把class替换成interface,接口是抽象类的抽象,是一种规范,规定了类需要实现的方法

 

1. 抽象类下面不仅可以有抽象方法,也可以有私有的普通方法,属性

2. 而接口不可以有私有的属性,方法,只能有全局常量和公有的抽象方法

  接口中的属性是常量,即使定义时不加上public static final,系统也会自动加上;

  接口中的方法是抽象方法,即使定义时不加上public abstract ,系统也会自动加上

  

  接口实现用implements关键字,一个子类只能继承一个父类,却可以实现多个接口。也可以多继承(用【】括起来)

  

 

总结:一个子类继承父类时,如果父类是抽象类,则必须实现父类的抽象方法

    一个类实现接口时,必须实现接口定义的抽象方法

    extends 与implements同时使用时,规范应该是public class A extends Fa implements IFa{}

    我们可以用多态的方式,父类引用子类,接口引用接口的实现类

posted @ 2016-06-17 10:02  猫儿36  阅读(137)  评论(0编辑  收藏  举报