《java接口和抽象类的异同点.docx》由会员分享,可在线阅读,更多相关《java接口和抽象类的异同点.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、相同点:l 都位于继承的顶端,用于被其他类实现或继承;l 都不能直接实例化对象;l 都包含抽象方法,其子类都必须覆写这些抽象方法;区别:l 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;l 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)l 抽象类是这个事物中应该具备的你内容,继承体系是一种is.a关系接口是这个事物中的额外内容,继承体系是一种like.a关系二者的选用:l 优先选用接口,尽量少用抽象类;多态的定义与使用格式 多态的定义格式:就是父类的引用变量指向子类对象 父类类型 变量名 = new 子
2、类类型(); 变量名.方法名();l 普通类多态定义的格式 父类 变量名 = new 子类(); 如:class Fu class Zi extends Fu /类的多态使用Fu f = new Zi(); l 抽象类多态定义的格式抽象类 变量名 = new 抽象类子类();如:abstract class Fu public abstract void method(); class Zi extends Fu public void method() System.out.println(“重写父类抽象方法”);/类的多态使用Fu fu= new Zi();l 接口多态定义的格式接口 变量
3、名 = new 接口实现类();如:interface Fu public abstract void method();class Zi implements Fu public void method() System.out.println(“重写接口抽象方法”);/接口的多态使用Fu fu = new Zi(); instanceof关键字我们可以通过instanceof关键字来判断某个对象是否属于某种数据类型。如的对象属于学生类,学生的对象也属于人类。使用格式:boolean b = 对象 instanceof 数据类型;如Person p1 = new Student(); /前提条件,学生类已经继承了人类boolean flag = p1 instanceof Student; /flag结果为trueboolean flag2 = p2 instanceof Teacher; /flag结果为false