Java讲义与实例 第三章 继承和多态.ppt

Java讲义与实例 第三章 继承和多态.ppt

ID:48426452

大小:52.00 KB

页数:24页

时间:2020-01-19

Java讲义与实例 第三章 继承和多态.ppt_第1页
Java讲义与实例 第三章 继承和多态.ppt_第2页
Java讲义与实例 第三章 继承和多态.ppt_第3页
Java讲义与实例 第三章 继承和多态.ppt_第4页
Java讲义与实例 第三章 继承和多态.ppt_第5页
资源描述:

《Java讲义与实例 第三章 继承和多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第三章继承和多态本章要点一、继承和多态的概念二、类成员的继承2.1属性与方法的继承2.2this和super的使用2.3构造函数的继承和重载2.4最终类和最终类成员2.5对象在继承关系中的改变2.6抽象类在继承中的特点一、继承和多态的概念1、继承的概念:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类成为父类,后定义的类称为子类,并且允许多层的继承关系Java中的类是以类的层次来存在的。Java中的类可用extends关键字来声明为另一个类的子类(subclass).子类从父类(

2、superclass)那里继承(inherit)变量和方法,然后可像在子类中声明的一样来使用这些变量和方法.车辆机动车非机动车内燃机车电车人力车蓄力车柴油机车汽油机车马车手推车自行车继承的定义publicclassVehicle{Stringcolor=“white”;protectedfloatspeed;publicvoidaccelerate(){}……..}publicclassAutomobileextendsVehicle{floatfuelConsumption;publicvoiddecelerate(){}……...

3、}publicclassCarextendsAutomobile{privateintprice;publicvoiddecelerate(){speed=speed-20.f;}}注:继承能够使子类拥有父类的非私有属性和方法,而不需要在子类的类定义时重新定义父类的这些属性和方法,子类即可以保持父类原有的属性和方法,也可以对从父类那里继承而来的属性和方法进行修改,在定义了继承关系后,我们改动父类的一个属性或方法时,子类也会自动改变,但是这些属性和方法必须是非私有,并且没有被子类重新定义的多态的概念多态是指在一棵继承树中的类可以有多个同

4、名但不同方法体以及不同形参的方法。两种情况:覆盖:在子类中直接定义和父类同样的属性和方法,但重新编写了方法体,即子类与父类方法的星参与返回值都相同,而内部处理不同,这种方法在使用过程中,Java虚拟机会根据调用这个方法的类来确定哪个方法被调用重载:同一个类定义中有多个同名的方法,但有不同的形参,而且每个方法有不同的方法体,调用时根据形参的个数和类型来决定调用的是哪个方法注:不能根据返回值的类型来区分重载的方法二、类成员的继承类成员:属性、方法、构造函数属性的继承属性的继承:子类不需要再定义就拥有了父类已有的非私有属性注:继承了属性,表

5、示子类被创建时另开辟了新的空间来存储从父类继承而来的属性,其初值应该是父类中该属性的初值,但之后,双方的相同属性就是彼此相互独立的变量了。只有当父类的该属性的定义发生了变化,子类中的该属性定义也跟着发生变化属性的覆盖:子类可以重新定义父类的非私有属性,这样,子类定义了一个与父类同名的属性,并且子类也继承了父类的该属性,在使用时通过调用该属性的变量或者方法来决定使用哪一个。publicclassFather{inta=100;publicvoidminer(){a--;}publicstaticvoidmain(String[]arg)

6、{Fatherx=newFather();Sony=newSon();System.out.println("aofsonis:"+y.a);System.out.println("aofson'ssuperis:"+y.getA());y.miner();System.out.println("aofsonis:"+y.a);System.out.println("aofson'ssuperis:"+y.getA());}}classSonextendsFather{inta=0;publicintgetA(){returnsupe

7、r.a;}}方法的继承方法的继承:子类不需要重新定义就可以拥有父类的非私有方法方法的覆盖:子类定义一个和父类同名而且同形参表的方法,如果子类中需要用父类的被覆盖的方法,可使用关键字super来实现方法的重载:方法的覆盖与重载的区别方法的覆盖是子类和父类之间的关系,而重载是同一类内部多个方法间的关系方法的覆盖一般是两个方法间的,而重载时可能有多个重载方法覆盖的方法有相同的方法名和形参表,而重载的方法只能有相同的方法名,不能有相同的形参表覆盖时区分方法的是根据调用他的对象,而重载是根据形参来决定调用的是哪个方法用final修饰的方法是不能

8、被子类覆盖的,只能被重载publicclassDetergentextendsCleanser{ publicvoidscrub(){ append("Detergent.scrub()");super.scrub();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。