预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共63页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章 高级类特性1 讲师:宋红康 新浪微博:http://weibo.com/songhk8686 JavaSE知识图解 JAVA发展历程JAVA开发环境搭建基础程序设计 JAVA新特性 数据类型控制语句数组方法 可变 泛型枚举装箱、拆箱Annotation面向对象程序设计 参数 Eclipse使用封装继承多态设计模式异常包 应用程序开发 连接OracleJDBC集合数据结构类库多线程IO反射网络 本章内容 4.1面向对象特征之二:继承 4.2方法的重写(override) 4.3四种访问权限修饰符 4.4关键字super 4.5子类对象实例化过程 4.6面向对象特征之三:多态性 4.7Object类、包装类 4.1面向对象特征之二:继承 为描述和处理个人信息,定义类Person: publicclassPerson{ Person publicStringname; +name:String +age:intpublicintage; +birthDate:Date publicDatebirthDate; +getInfo():String publicStringgetInfo() {...} } 继承(1) 为描述和处理学生信息,定义类Student: publicclassStudent{ StudentpublicStringname; +name:Stringpublicintage; +age:intpublicDatebirthDate; +birthDate:Date publicStringschool; +school:String +getInfo():StringpublicStringgetInfo() {...} } 继承(2) 通过继承,简化Student类的定义: publicclassPerson{ PersonpublicStringname; +name:Stringpublicintage; +age:int +birthDate:DatepublicDatebirthDate; +getInfo():StringpublicStringgetInfo(){...} } StudentpublicclassStudentextendsPerson{ +school:StringpublicStringschool; } //Student类继承了父类Person的所有属性和方 法,并增加了一个属性school。Person中的属性 和方法,Student都可以利用。 继承(3) 为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到 单独一个类中,那么多个类无需再定义这些属性和行 为,只要继承那个类即可。 此处的多个类称为子类,单独的这个类称为父类 (基类或超类)。可以理解为:“子类isa父类” 类继承语法规则: classSubclassextendsSuperclass{} 继承(4) 作用: 继承的出现提高了代码的复用性。 继承的出现让类与类之间产生了关系,提供 了多态的前提。 不要仅为了获取其他类中某个功能而去继承 类的继承(5) 子类继承了父类,就继承了父类的方法和属性。 在子类中,可以使用父类中定义的方法和属性,也可 以创建新的数据和方法。 在Java中,继承的关键字用的是“extends”,即子类不 是父类的子集,而是对父类的“扩展”。 关于继承的规则: 子类不能直接访问父类中私有的(private)的成员变量和方法。 单继承举例 Person +name:Stringsuperclass +age:int +birthDate:Date +getInfo():String SoldierStudentOfficersubclass +school:String Graduatesubsubclass +major:String +register():void 类的继承(6) Java只支持单继承,不允许多重继承 一个子类只能有一个父类 一个父类可以派生出多个子类 classSubDemoextendsDemo{}//ok classSubDemoextendsDemo1,Demo2...//error 多重继承 多层继承 练习1 1.(1)定义一个ManKind类,包括 成员变量intsex和intsalary; 方法voidmanOrWorman():根据sex的值显示“man”(sex==1)或 者“women”(sex==0); 方法voidemployeed():根据salary的值显示“nojob”(salar