接口概述:
接口是一个比抽象类还抽象的类,接口里所有的方法全是抽象方法,接口和类的关系是实现,
implements
interface
格式:interface 接口名 {
}
接口的成员特点:
只能有抽象方法, 默认使用 public abstract 修饰方法
只能有常量 ,默认 public stitic final 来修饰成员变量
只能使用public abstract 修饰方法 建议手动给上默认修饰符
注:接口不能创建对象(不能实例化),
类与接口的关系是实现关系,一个类实现一个接口必须实现它所有的方法
接口和类之间的关系
类与类: 继承关系,单一继承,多层继承,一个类只能有一个父类
类与接口: 实现关系,多实现 (一个类可以实现多个接口)
接口与接口: ·继承关系,多层继承
接口的思想
接口的优点:
1. 打破了继承的局限性
2. 对外提供规则(usb 接口)
3. 降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高效率)
接口和抽象类的区别:
抽象类可以有抽象方法和非抽象方法,接口只有抽象方法
抽象类有构造方法 ,接口没有
抽象类有变量和常量,接口只有常量
分析: 由下至上 不断向上抽取的过程
实现: 由上至下 先实现共性
使用: 使用具体的子类
多态的前提: 子父类的继承关系
方法的重写
父类引用指向子类对象 eg : Fu f = new Zi () ;
f.eat(); 指向子类方法
动态绑定:运行期间调用的方法,是根据其具体的类型
多态的成员特点:
成员变量:编译时看的是左边,运行时看的是左边
成员方法: 编译时看的是左边,运行时看的是右边
静态方法: 编译时看的是左边,运行时看的是左边
编译时看的都是左边,运行时成员方法看的是右边,其他看左边
多态中的向上转型和向下转型:
向上转型
由小到大(子类转型到父类)
eg : Fu f = new Zi () ;
向下转型
由大到小 (父类转子类)
eg: Zi z = (Zi) f ;
多态优缺点:
优点: 它就可以接受本类对象,也可以接受其子类对象
可以提高可维护性(多态前提所保证的),提高代码的可扩展性
缺点: 无法直接访问子类特有的成员
instanceof 判断是否是同一个类型
|
|