- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多态的好处和弊端 多态的好处(goWhere,howMoney) 提高了程序的维护性(由继承保证) 提高了程序的扩展性(由多态保证) 多态的弊端 不能访问子类特有功能 那么我们如何才能访问子类的特有功能呢? 多态中的转型 多态中的转型问题 向上转型 从子到父 父类引用指向子类对象 向下转型 从父到子 父类引用转为子类对象 抽象类概述 抽象类概述 回想前面我们的猫狗案例,提取出了一个动物类。并且我们在前面也创建过了动物对象,其实思想是不对的。 为什么呢?因为,我说动物,你知道我说的是什么动物吗?只有看到了具体的动物,你才知道,这是什么动物。 所以说,动物本身并不是一个具体的事物,而是一个抽象的事物。只有真正的猫,狗才是具体的动物。同理,我们也可以推想,不同的动物睡觉的方式应该是不一样的,所以,我们不应该在动物类中给出具体体现,而是应该给出一个声明即可。在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。 抽象类特点 抽象类特点 抽象类和抽象方法必须用abstract关键字修饰 格式 abstract class 类名 {} public abstract void eat(); 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类 抽象类不能实例化 那么,抽象类如何实例化呢? 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。 抽象类的子类 要么是抽象类 要么重写抽象类中的所有抽象方法 抽象类的成员特点 成员变量 可以是变量 也可以是常量 构造方法 有构造方法,但是不能实例化 那么,构造方法的作用是什么呢? 用于子类访问父类数据的初始化 成员方法 可以有抽象方法 限定子类必须完成某些动作 也可以有非抽象方法 提高代码复用性 抽象类练习 老师案例 具体事物:基础班老师,就业班老师 共性:姓名,年龄,讲课。 学生案例 具体事务:基础班学员,就业班学员 共性:姓名,年龄,班级,学习,吃饭 接口概述 接口概述 现实生活的猫狗,我们想想狗一般就是看门,猫一般就是作为宠物了,对不。但是,现在有很多的驯养员或者是驯兽师,可以训练出:猫钻火圈,狗跳高,狗做计算等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的,对不。所以,这些额外的动作定义到动物类中就不合适,也不适合直接定义到猫或者狗中,因为只有部分猫狗具备这些功能。所以,为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能,并不给出具体实现,将来哪些猫狗需要被培训,只需要这部分猫狗把这些额外功能实现即可。 接口特点 接口特点 接口用关键字interface表示 格式:interface 接口名 {} 类实现接口用implements表示 格式:class 类名 implements 接口名 {} 接口不能实例化 那么,接口如何实例化呢? 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。 接口的子类 要么是抽象类 要么重写接口中的所有抽象方法 接口成员特点 成员变量 只能是常量 默认修饰符 public static final 构造方法 没有,因为接口主要是扩展功能的,而没有具体存在 成员方法 只能是抽象方法 默认修饰符 public abstract 类与类,类与接口以及接口与接口的关系 类与类 继承关系,只能单继承,但是可以多层继承 类与接口 实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时实现多个接口 接口与接口 继承关系,可以单继承,也可以多继承 抽象类和接口的区别 成员区别 抽象类 变量,常量;有抽象方法;抽象方法,非抽象方法 接口 常量;抽象方法 关系区别 类与类 继承,单继承 类与接口 实现,单实现,多实现 接口与接口 继承,单继承,多继承 设计理念区别 抽象类 被继承体现的是:”is a”的关系。共性功能 接口 被实现体现的是:”like a”的关系。扩展功能 包 包的概述 其实就是文件夹 作用:对类进行分类管理 包的划分: 不同的包装不同的类 包的定义及注意事项 定义包的格式 package 包名; 多级包用.分开即可 注意事项: package语句必须是程序的第一条可执行的代码 package语句在一个java文件中只能有一个 如果没有package,默认表示无包名 带包的类的编译和运行 手动式 a:javac编译当前类文件。 b:手动建立包对应的文件夹。 c:把a步骤的class文件放到b步骤的最终文件夹下。 d:通过java命令执行。注意了:需要带包名称的执行 java 360.HelloWorld 自动式 a:javac编译的时候带上-d即可 javac -d . Hell
文档评论(0)