第4讲面向对象—继承.ppt

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

继承是由已有类创建新类的机制,是面向对象程序设计基础,是面向对象程序设计方法的一个重要手段 通过继承可以更有效地组织程序结构,利用已有的类来完成更复杂的新类的设计与开发,充分实现代码重用 Java只支持单一继承,即一个类只能有一个超类。 多态是指一个程序中,同名的不同方法共存的情况。 多态提高了类的抽象性和封装性,多态有两种表现形式:同一个类内的方法的重载和不同类间的子类对超类方法的覆盖。 继承和多态是面向对象编程的两个核心特点 本章介绍继承与多态的实现技术。 当一个类可以自动拥有另一个类的成员变量和成员方法时,称这两个类之间存在继承关系 被继承的类称为超类或父类,继承了超类成员的类称为子类,子类是由超类派生的类 一个类只有一个超类为单重继承,Java只支持单重继承。 子类继承的成员变量 子类可继承超类的所有私有以外的成员变量; 子类不能继承超类的private成员变量,如果希望超类的成员变量不被子类访问,那么就声明为私有的,充分体现了面向对象编程的封装原则。 子类继承超类的成员方法 子类可继承超类的所有私有以外的成员方法; 子类不能继承超类的private成员方法,不能继承超类的构造方法,但可以调用超类的构造方法。 如果子类成员方法与超类相同,称子类覆盖超类成员方法,即子类重新定义超类的同名方法; this引用 用来在一个成员函数内部指向当前的对象 ; 作用: 访问本类的成员变量与成员方法,格式: this.变量名; this.方法名; 调用本类的构造方法: this(参数表) super引用 用来引用被子类隐藏的超类成员变量与成员方法; 作用: 引用被子类隐藏的超类成员变量与成员方法,格式: super.变量名; super.方法名; 调用超类的构造方法: super(参数表) Java把多样性的概念引入面向对象的编程思想中,为Java设计了多态(Polymorphism)机制 Java语言的多态是指程序中同名的不同方法共存的情况。多态是面向对象程序设计的又一个特性; 实现多态途径: 方法重载 方法覆盖 一个引用可以有多种形态,这种情况称作多态。 Employee e=new Employee( ); Employee e=new Manager( ); e即可以是 Employee的对象,也可以是Manager( )的对象。 一个引用可以有多种形态, 但是对象不能有多种情况。 对象名 instanceof 类名 判断前后是否是同类 if (a instanceof B){ } 规则:同类为真; 子类,父类为真; 其余为假; class sub1 extends p; sub1 s1; class sub2 extends p; sub2 s2; s1 instanceof p s2 instanceof p s1 instanceof sub1 s1 instanceof sub2 1.子类对象赋给父类引用:自动转换; Employee e=new Manager( ); 2.父类对象赋给子类引用:强制类型转换; Manager m=new Employee();错 Manager m=(Manager)new Employee(); 3.转换只能在父子之间转换; 一个类中含有多个同名而参数不同的方法,即方法重载,即类中的一个方法,可以有多种不同的实现形式。 Java中方法的重载包括:成员方法的重载和构造方法的重载 之所以同一个类中要定义多个同名的不同方法,是由于它们在完成同一个功能时,可能要遇到不同的具体情况,因此,需要定义含有不同的具体操作的方法,来代表多种具体的实现形式 一个函数是求两个int型的和;另一个实现是求两个浮点型数之和; int add(int x,int y); float add( float x, float y); 方法重载必须满足: 方法名字相同, 参数必须不同:参数类型不同,或个数不同; 返回类型可以不同,也可以相同; 成员方法的重载 在一个类的内部利用重载定义多个同名方法,可以向外提供统一的接口,使用者只需掌握方法调用时的参数,不需要了解其内部细节。如,定义求和方法add() int add(int x,int y); //求两个整数的和 int add(int x,int y,int z);求三个整数的和 float add( float x, float y);

文档评论(0)

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

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

1亿VIP精品文档

相关文档