电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第06章_类的设计VIP免费

第06章_类的设计_第1页
1/48
第06章_类的设计_第2页
2/48
第06章_类的设计_第3页
3/48
第6章类的设计本章内容:继承(inheritance)多态(polymorphism)重载(overloading)覆盖(overriding)super的使用对象的强制转换对象类型的测试及对象的恢复==与equals包装类抽象与封装抽象:即忽略被研究对象中与主旨无关的次要部分,仅仅考虑与研究工作有关的实质性的内容。封装:是指利用抽象数据类型将数据和对这些数据的操作组合在一起,数据被保护在抽象数据类型的内部,外部只能通过公共操作来访问被保护的数据(在Java里为private型数据)。继承与多态继承是存在于面向对象程序中的两个类之间的一种关系。当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。多态是指一个程序中同名的不同方法共存的情况。面向对象的程序中多态的情况有两种:动态多态:通过子类对父类方法的覆盖(override),有时也叫方法重写。静态多态:利用重载(overload)在同一个类中定义多个同名的不同方法。继承的格式通过在类的声明中加入extends子句来创建一个类的子类。格式如下:classSubClassextendsSuperClass{……}如果缺省extends子句,则该类为java.lang.Object的子类继承的特点子类可以继承父类中访问权限设定为public、protected、缺省(没有访问权限修饰符)的成员变量和方法。子类不能继承父类的私有(private)成员变量和方法。子类只能从一个父类继承,不能同时继承多个父类。访问权限类公共类(public)非公共类(缺省)类成员publicprotectedNomodifierprivatepublicprotectedNomodifierprivate同一类同一包中的子类不同包中的子类不同包中的非子类控制程度宽松严格宽松严格方法重载方法重载即指在同一个类中,多个方法有相同的名字。这些方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。参数类型的区分度要够,例如不能是同一种简单类型,如不能是int和long,因为系统会自动把低级类型升级(promote)到高级类型。不能用返回类型来区分重载的方法。方法重载举例classMethodOverloading{voidreceive(inti){……}voidreceive(intx,inty){……}voidreceive(doubled){……}voidreceive(Strings){……}}方法重载举例publicclassMethodOverloadingTest{publicstaticvoidmain(Stringargs[]){MethodOverloadingmo=newMethodOverloading();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive(“veryinteresting,isn’tit?”);}}说明:根据运行时传入的参数类型和个数来决定调用哪个重载的方法。方法重载举例2publicclassTest6{publicstaticvoidmethod1(inti){System.out.println(“method1(int)");}publicstaticvoidmethod1(longi){System.out.println("method1(long)");}publicstaticvoidmain(String[]args){method1(1);method1(1L);}}//输出:method1(int)method1(long)说明:根据传入的参数类型来选择调用相应的方法。方法覆盖(Overriding,重写)方法覆盖指在子类中重新定义父类中已有的方法。方法覆盖是父类与子类之间的关系。classA{voidcallme(){System.out.println("InsideA");}}classBextendsA{voidcallme(){System.out.println("InsideB");}}方法覆盖注意事项:子类的方法必须与父类的方法有同样的返回类型。子类的方法的访问权限不能低于父类方法的访问权限。否则会出现编译时错误。子类的方法不能抛出与父类方法不同的例外,但可抛出父类例外的子例外。子类方法可以不抛出例外或比父类抛出更少的例外,但不能抛出比父类更多的例外。动态多态性对象的多态性是指在父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。同名的属性或同名方法在父类及其各个子类中具有不同的内容或方法体。例如:“几何图形”的“绘图”方法,“椭圆”和“多边形”都是“几何图形”的子类,其“绘图”方法功能不同。多态性举例根据运行时对象的类型来决定调用哪个方法。classShape{voiddraw(){System.out.println(“shape”);}}classCircleextendsShape{voiddraw(){System.out.println(“circle”);...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第06章_类的设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部