Java培训系列课程-抽象类(精品培训).pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程师培训资料标题:Java培训系列课程-抽象类(精品培训)培训人:xx本章学习目标掌握继承性的主要作用、实现、使用限制;掌握方法覆写的操作;掌握final关键字的使用;掌握对象多态性的概念以及对象转型的操作;掌握抽象类和接口的定义、使用、常见设计模式;掌握Object类的主要特点及实际应用;掌握匿名内部类的使用;掌握基本数据类型包装类的使用。抽象类普通类可以直接产生实例化对象,并且在普通类之中可以包含有构造方法、普通方法、static方法、常量、变量的内容。而所谓的抽象类就是指在普通类的结构里面增加抽象方法的组成部分,抽象方法指的是没有方法体的方法,同时抽象方法还必须使用abstract关键字进行定义。拥有抽象方法的类一定属于抽象类,抽象类要使用abstract声明。范例:定义抽象类abstract class A {// 定义一个抽象类,使用abstract声明 public void fun() {// 普通方法 System.out.println(存在有方法体的方法!); } // 此方法并没有方法体的声明,并且存在有abstract关键字,表示抽象方法 public abstract void print();}此时抽象类已经被成功的定义出来,但是如果要想使用抽象类则必须遵守如下原则:抽象类必须有子类,即:每一个抽象类一定要被子类所继承(使用extends关键字),但是在Java中每一个子类只能够继承一个抽象类,所以具备有单继承局限;抽象类的子类(子类不是抽象类)必须覆写抽象类之中的全部抽象方法(强制子类覆写);依靠对象的向上转型概念,可以通过抽象类的子类完成抽象类的实例化对象操作。范例:正确使用抽象类abstract class A {// 定义一个抽象类,使用abstract声明 public void fun() {// 普通方法 System.out.println(存在有方法体的方法!); } // 此方法并没有方法体的声明,并且存在有abstract关键字,表示抽象方法 public abstract void print();}//一个子类只能够继承一个抽象类,属于单继承局限class B extends A {// B类是抽象类的子类,并且是一个普通类 public void print() {// 强制要求覆写的方法 System.out.println(Hello World !) ; }}public class TestDemo { public static void main(String args[]) { A a = new B() ;// 向上转型 a.print() ; // 被子类所覆写过的方法 }}抽象类的相关限制抽象类里面由于会存在一些属性,那么在抽象类之中一定会存在构造方法,目的:为属性初始化,并且子类对象实例化的时候依然满足于先执行父类构造,再调用子类构造的情况。抽象类不能够使用final定义:因为抽象类必须有子类,而final定义的类不能够有子类;抽象类中可以没有任何抽象方法,但是只要是抽象类,那么依然不能够直接使用关键字new实例化对象。抽象类中依然可以定义内部的抽象类,而实现的子类也可以根据需要选择是否定义内部类来继承抽象内部类。外部抽象类不允许使用static声明,而内部的抽象类允许使用static声明,使用static声明的内部抽象类就相当于是一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。抽象类中,如果定义有static属性或方法的时候,都可以在没有对象的时候直接调用。抽象类应用 —— 模版设计模式现在假设有三类现实的事物(或者是更多的事物): 机器人(Robot):具备充电、工作两个基本操作;人类(Human):具备吃饭、工作、睡觉三个基本操作;猪(Pig):具备吃饭、睡觉两个基本操作。范例:定义的是一个行为类abstract class Action {// 定义一个抽象的行为类,行为不是具体的 // 定义常量时必须保证两个内容相加的结果不是其它行为,例如:EAT + SLEEP的结果为6不会和其它值冲突 public static final int EAT = 1; // 定义吃的命令 public static final int SLEEP = 5; // 定义睡的命令 public static final int WORK = 7; // 定义工作的命令 public void command(int flag) { switch (flag) { // switch只支持数值判断,而if支持条件判断 case EAT: // 当前为吃的操作 this.eat();// 调用子类中具体的“吃”方法 break; case

文档评论(0)

知识的天空 + 关注
实名认证
内容提供者

电子工程技术工程师持证人

推荐自动化、电气、仪表、工程、医学等精品培训教程

领域认证该用户于2023年06月07日上传了电子工程技术工程师

1亿VIP精品文档

相关文档