四章继承和多态.ppt
《四章继承和多态.ppt》由会员分享,可在线阅读,更多相关《四章继承和多态.ppt(21页珍藏版)》请在三一办公上搜索。
1、第四章 继承和多态,继承和多态,4.1继承基础4.2构造器的调用顺序4.3 继承还是组合?4.4 Object类4.5 toString方法4.6 对象的比较,4.1继承基础,类与类之间还有一种父与子的关系,子类继承父类方法与属性,这个我们就称之为继承 子类拥有父类的一些公有的属性和方法,并且子类可能也会有自己的方法和属性 除了添加父类中没有的新方法外子类还可以通过重写父类的方法来重定义自己的行为方式,继承基础,重写与重载不同,重载需要不同的参数来区别相同方法名的方法,重写是发生在子类与父类上,重写父类方法必须与父类的方法名同名同参并且同返回值。当访问修饰符为private时,表明该方法不能被
2、重写,同样当方法具有final关键字时该方法不能被重写。子类虽然重写了父类的某个方法,但仍然需要用到父类的这个方法,这时使用super关键字仍然可以调用父类的方法。程序4.1 TestExtends.java示例继承机制,程序4.2 TestOstrich.javapublic class TestOstrich public static void main(String args)Bird ostrich1=new Ostrich();/向上转型 ostrich1.fly();class Bird public static void fly()System.out.println(Bir
3、d Flying!);class Ostrich extends Birdpublic static void fly()System.out.println(I cant fly!);输出结果:Bird Flying!,Static方法不能重写,Bird类派生了鸵鸟Ostrich类,以上程序声明了一个Bird类型的鸵鸟对象,象基本类型数据的自动提升一样,鸵鸟自动提升为Bird类,这叫做向上转型。static方法是不会被重写如TestOstrich.java所示:子类中定义了与父类同名的fly方法,父类的fly方法不会被重写,而是被遮蔽因此得出结果鸵鸟会飞!,4.2构造器的调用顺序,子类在产生
4、对象实例时首先会调用父类的构造方法,如果没有显示的指定调用父类自定义的构造方法,那么编译器会调用默认的父类构造方法:super()。但是父类如果自定义了带参数的构造方法,就必须在子类的构造方法中指定调用它,否则会因找不到super()而报错。注意,如果需要显示的调用父类构造方法,必须将其写在构造方法里的第一行。接着按声明的顺序调用成员初始化。最后调用本构造方法的方法体 例:程序4.3 TestInheritanceConstructor.java,4.3 继承还是组合?,判断继承关系的一条定律是看它是否符合is-a的定义 继承打破了类的封装子类继承了父类的成员就意味着父类成员有所改变时子类必须
5、随之变化,这削弱了子类的独立性,增加了软件维护的难度。继承的层次不宜过多,设计时良好的继承体系应该保持在三层以内。我们复用类时的指导原则是优先选择组合,例子:程序4.4 CallOffNumbers.java,4.4 Object类,Java中所有的类都是继承自一个老祖宗,Object类,它们都是Object类的子类。如果一个类在声明时没有用extends关键字显式的指定继承自某个基类,则Java隐式的指定它的默认基类为Object类。这种强制的继承模式叫做单根继承模式。单根继承使得Java简化了许多操作,基于单根继承,所有的对象都可以像基本数据类型一样向上转型到根层次上而使其操作上一视同仁
6、单根继承的优势还在于可以在Object类定义所有对象都通用的方法,所有类都会自动继承这些方法,4.5 toString方法,Object类定义了 public String toString()方法,返回值是String类型,每当个对象都会有个toString方法,作用就是描述对象的信息要想使用toString方法必须按自己的需求重写这个方法,例子:程序4.6 TestToString.java,4.6 对象的比较,Java中比较两个基本数据类型变量的值时很简单使用“=”操作符 Object类中的equals方法提供了对象内容的比较方法同样我们要是用这个方法必须重写它 如果不重写equals方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 继承

链接地址:https://www.31ppt.com/p-5376230.html