- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA 第三章节
上面例子中,根据Lady对象的成员变量pet所引用的不同的实 际类型而调用相应的Scream方法。 多态 1、要有继承 2、要有重写 3、父类引用 知识回顾: 1、对象转型 父类的引用指向子类对象(向上转型) 2、多态 编译时类型与执行时类型不一致。例:Animal a = new Cat(); 多态的条件: 父类引用指向子类对象 继承 重写 Java中,所有对象都是通过类来描述的,但是并不是所有的类都是用来描述对象的,特别对于在继承层次中位于顶层的父类,往往需要越概括越抽象越好,类的设计应该保证父类包含子类的共同特征,即顶层的父类要尽量包含较少的信息,这样便于低层的子类扩展,并力图对父类封装的破坏程度降到最低。 抽象类 抽象类 用abstract 关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承, 抽象方法必须被重写。 抽象类不能被实例化。 抽象方法只需声明,而不需实现。 抽象类的访问修饰符不能为private; 抽象类可以包含0或多个抽象方法; 抽象类只能被继承,抽象类的子类必须实现抽象类里面所有 的抽象方法,否则该子类也是抽象类; 抽象类可以含有属性、方法、构造方法等,但是抽象类的构 造方法不能用于创建实例,主要用于被子类调用。 抽象类 4.5 接口 接口是一种更加纯粹的、完全的抽象类 接口中只能包含抽象方法和常量 它的抽象方法要求实现这个接口的类实现 接口举例: public interface Runner { public staitc final int id = 1; public void start(); public void run(); public void stop(); } 接口的修饰符可以是public或缺省类型; 不管你是否使用public static final修饰符,接口的属性总将使用这三个修饰符来修饰,即接口中变量相当于常量,声明变量时必须显式的初始化。 接口中定义的方法都是抽象类型,不能有方法体。接口中的方法总是用public abstract修饰(即使没有显式地指定,系统也会按照public abstract类型修饰方法); 注意 接口中没有构造方法和初始化程序块; 接口也可以继承其它接口,也是使用extends关键字继承,而且一个接口可以同时继承1或多个接口(即接口支持多重继承),但接口不能继承类; 注意 4.5接口的实现 一个类可以实现一个或多个接口 多个类也可以实现一个接口 与继承关系相似,接口和实现类之间存在多态。 举例: interface swimmer { public void swimmer(); public void rest(); } interface singer { public void sing(); } class person implements singer { private String name; person(String name) { this.name = name; } public void sing() { System.out.println(this.name + is singing); } public void work() { System.out.println(this.name + is working); } } class student implements singer,swimmer { private String name; student(String name) { this.name = name; } public void study() { System.out.println(this.name + is studying); } public void sing() { System.out.println(this.name + are singing); } public void swimmer() { System.out.println(this.name + is swimming); } public void rest() { System.out.println(rest!); } } class InterfaceDemo { public static void main(String[] args) { singer
您可能关注的文档
最近下载
- YYT1790-2021 纤维蛋白纤维蛋白原降解产物测定试剂盒(胶乳免疫比浊法).pdf VIP
- 精装修产品化施工之“全控图”-项目经理培训.pdf VIP
- 风光储项目建设合同.docx VIP
- 《电工电子技术基础课件(第7版)》高职PPT完整全套教学课件.pptx VIP
- MSA偏倚-测量系统分析报告.xlsx VIP
- XXX采煤工作面过应力集中区安全技术组织措施.pdf VIP
- 人教版九年级上册物理全册新质教学课件(配2025年秋改版教材).pptx
- 水运工程结构防腐蚀施工规范.docx VIP
- 施工企业质量安全管理手册.docx VIP
- 上交大《高速铁路动车组餐饮服务与管理》教学资料 教学课件 模块1.pptx VIP
文档评论(0)