第5章继承、接口、多态.ppt

  1. 1、本文档共111页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章继承、接口、多态资料

第五章 继承、接口和内部类 5.1 类的继承 5.2 抽象类和接口 5.3 内部类 5.4 final类和final方法 5.5 多态 5.6 包 5.1 类的继承 在日常生活中,我们常用“是一种(is-a)”关系来组织与表达知识,从而将知识组织成一种有层次、可分类的结构。 面向对象程序设计方法将is-a关系引入到程序设计领域,用于描述类与类之间的关系,称之为继承。 5.1 类的继承 5.1 类的继承 类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。当然,子类也可以具有自己独立的属性和操作。 继承性是面向对象程序设计语言的最主要的特点,是其他语言(如面向过程语言)所没有的。 5.1 类的继承 继承性是软件复用的一种形式。新类由已存在的类生成,通过保留它们的属性和行为,并且根据新类的要求对性能加以修改,添加新的属性和行为。 如果子类只从一个父类继承,则称为单继承;如果子类从一个以上父类继承,则称为多继承。注意 Java不支持多重继承,但它支持“接口”概念。接口使Java获得了多重继承的许多优点,摒弃了相应的缺点。 5.1 类的继承 类继承的规则: 直接子类继承那些被声明为public 或protected的直接父类成员(包括成员变量和成员方法,下同) 直接子类继承那些未被存取权限修饰符修饰的直接父类成员,只要该子类与该父类在同一个包中 如果直接子类声明了一个与直接父类中的成员同名的成员,则该子类继承自该父类中的该同名成员隐藏 直接子类不继承被修饰为private的直接父类的成员 5.1.1 子类的定义 通过在类的声明中加入extends子句来定义一个类的子类,其基本格式为: class 子类名 extends 父类名 { 新的成员变量 新的成员方法 } 其中,父类可以是自定义的类或java类库中的类。 5.1.1 子类的定义 例如:下面是定义的人和学生两个类: class Person { int age; int height; void eat(){} void sleep(){} } 5.1.1 子类的定义 学生属于人类,所以具有人类的属性,所以“学生”类便拥有“人”类的所有成员。也就是“学生”类继承“人”类。重新定义: class Person { int age; int height; void eat(){} void sleep(){} } 5.1.1 子类的定义 其中处于继承关系中的“人”类称作“父类”(parent类)或超类(super类),而把学生类称为子类( sub 类)或派生类。 如果在某个类的声明语句后没有使用extends关键字的话,实际上该类隐式的继承了java类库中的Java.lang.Object类。 class Inher1_1 { int a; void hi() { System.out.println(“Hi~~); } } public class Inher1 extends Inher1_1 { public static void main(String[] args) { Inher1 ob=new Inher1(); ob.a=10; ob.hi(); } } 分析程序: class A { int i=1; public void printI() { System.out.println(i=+i); } } public class B extends A { public static void main(String[] args) { B b=new B(); b.printI(); } } 定义一个位置坐标类,属性有x和y坐标,成员函数包括构造函数、获取x坐标的函数、获取y坐标的函数和移动到指定点函数。然后定义派生类点类,除了继承基类的成员外,又增加了新的数据成员颜色、获取颜色值的成员函数和显示数据成员值的函数。 class CLocation //位置坐标类 { private int x; private int y; public CLocation(int x,

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档