面向对象高级特性

面向对象高级特性

ID:38341708

大小:355.31 KB

页数:28页

时间:2019-06-10

面向对象高级特性_第1页
面向对象高级特性_第2页
面向对象高级特性_第3页
面向对象高级特性_第4页
面向对象高级特性_第5页
资源描述:

《面向对象高级特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章面向对象高级特性5.1变量多态5.2非访问控制符5.3接口5.4访问控制符5.5内部类5.1变量多态5.1.1定义类型为X的参考变量,其指向的对象类型既可以是X,也可以是X的子类。例如:Students1,s2;s1=newStudent("651003","王五");s2=newCollegian("0810123","张三","计算机");主意:s2就是变量多态。例5-1动态绑定:编译器通过检查变量的类型来确定相关方法能否被调用;而运行时,具体访问的哪个方法被调用由变量指向的对象类型来确定。

2、5.1变量多态改进后的例5-15.1.2用途(1)用于异类收集基于变量多态,可以把具有继承关系的对象集合到同一个数组中。例如:Students[];s=newStudent[2];s[0]=newStudent("651003","王五");s[1]=newCollegian("0810123","张三","计算机");5.1变量多态(2)用于方法参数传递实参是形参的子类对象。例如:在Stack类中的publicintsearch(Objecto)5.1.3类型判断其格式为:对象instanceof类

3、该运算符的作用就是判断左边的对象是不是右边的类型,如果是结果为true,否则为false。5.1变量多态5.1.4参考类型转换总结即子类向父类的转换可以自动进行,而父类向子类的转换则需要指明,且看是否能转换。1.正确的转换1-子类变量给父类变量赋值例5-32.错误的转换1-父类变量给子类变量赋值例5-45.1变量多态3.错误的转换2-指向父类对象的父类变量强制转换为子类类型例5-54.错误的转换2-指向子类对象的父类变量给子类变量赋值例5-65.正确的转换2-能正确强制类型转换为子类类型的变量给子类变

4、量赋值例5-75.2非访问控制符5.2.1staticstatic可以修饰变量、方法。1.类变量(静态变量)类变量和实例变量的区别:类变量可以通过类名访问;实例变量通过对象名进行访问5.2.1staticstatic可以修饰变量、方法。1.类变量(静态变量)类变量和实例变量的区别:例5-85.2非访问控制符类变量和成实例变量的内存分布5.2非访问控制符2.类方法(静态方法)类方法也不需要创建对象,直接通过类名访问。(1)类方法只能直接访问类变量或方法参数,不能直接访问实例变量。但在非静态的方法中,可以

5、直接访问本类中的静态变量和非静态变量。例5-9(2)静态方法不能直接访问非静态方法。例5-105.2非访问控制符3.类变量的作用例5-115.2.2finalfinal可以修饰类、方法和变量1.修饰类final修饰的类为最终类,不能被继承。例5-125.2非访问控制符2.修饰方法final修饰的方法是最终方法,不能被覆盖。例5-133.修饰变量final修饰的“变量”是字符常量,代表常量,在一次赋值后其值不能改变。例5-145.2非访问控制符5.2.3abstractabstract可以修饰类和方法。

6、1.修饰类abstract修饰的类是抽象类,即类中有些内容(方法)还没有定义完整。不能创建抽象类的对象,抽象类一般是用来做父类的,即它可以被其它类继承。abstract与final“相克”,它们不能修饰同一个类。例5-155.2非访问控制符2.修饰方法abstract修饰的方法是抽象方法,也就是只定义了方法头部,没有方法体。例如:abstractvoidtt();3.修饰类和修饰方法的关系(1)抽象类不一定含有抽象方法,但含有抽象方法的类一定是抽象类。例:改进后的5-155.2非访问控制符(2)如果子

7、类没有实现抽象类中所有的抽象方法,那么子类要定义为抽象类。例4.抽象类的作用抽象类的作用就是做父类。例5-16:作为一个公司可能有很多种交通工具,编程计算每天所有交通工具的耗油总量。5.3接口5.3.1说明Java通过接口来弥补它单重继承的不足,接口之间是多重继承,即一个接口可以有多个父接口,而且一个类可以实现多个接口。5.3.2接口定义接口定义的格式:interface接口名{接口体}5.3接口接口中的方法不给出方法体,是抽象方法,即都是public、abstract的方法;接口中只允许定义常量,不

8、允许定义变量,接口中的成员变量都是public、static、final型的;方法的修饰符及变量的修饰符都是可以省略的。例5-175.3接口5.3.3实现实现接口的格式:class类名implements接口名列表{类体}类实现接口意味着类首先要继承接口,然后再重写方法体。一个类实现一个接口,如果该类不是抽象类,则必须实现接口中每个方法,即给出每个方法的方法体。如果一个类同时实现多个接口,接口名之间用逗号隔开。例5-17改进5.3接口5.3.4综合举例例

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

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

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