今天上课的时候,听到了抽象类和接口的区别,和之前.Net讲的有那么一点点的区别吧,之前还说接口可以是特殊的类,但是吧,今天听完课,发现这个理论是错误的。
来看一下我对接口的理解吧!
1.接口
针对一个类中所有方法都是抽象的方法这种情况,java提供一个新的技术叫做接口
Interface implement
接口并不直接或者间接的继承至Object
接口的特点:
A:接口不能被实例化
B:接口中的方法
要么被子类重写此接口中的所有方法
要么子类也是抽象类
2.接口中的成员特点
A:成员变量:接口中只有常量。因为接口的成员变量有默认修饰符,public static final
B:成员方法
接口中的方法都是抽象的,没有非抽象的
因为接口中的成员方法有默认的修饰符:
Public abstract
推荐:永远自己手动给出修饰符
C:构造方法
接口没有构造方法(他不继承Object类,所以就不是接口)
任何类如果咩有继承父类,那么这个类就继承Object类
3。接口与类之间的关系
类与接口的关系:
类与类的关系
继承关系,而且是单继承,多层继承
类与接口的关系
实现关系,可以但实现也可以多实现。
并且还可以在继承一个类的时候,实现多个接口
接口与接口的关系
继承关系可以单继承也可以多继承
4.接口思想特点
对外暴露的规则
程序的功能扩展
降低耦合性
多实现
5.接口与抽象类的区别:
1.成员特点:
抽象类:
成员变量:变量 常量
构造方法:有构造方法
成员方法:可以是抽象的方法,也可以是非抽象方法
接口:
成员变量:只能是常量
修饰符 public static final
成员方法:只能是抽象方法
默认修饰符:public abstract
2.关系特点
类与类
继承关系 只能单继承,可以多继承
类与接口:
实现关系,可以单实现,也可以多实现
还可以在继承一个类的同事,实现多个接口
接口与接口
继承关系,,可以单继承,也可以多继承
3.设计理念区别
抽象类被继承,这个类中定义的是整个继承体系的共性内容
体现:is a
接口被实现,这个接口定义的是整个体系的扩展内容
体现:like a
|
|