Java程序设计 刘卫国 第5章 封装继承与多态

Java程序设计 刘卫国 第5章 封装继承与多态

ID:40238739

大小:3.68 MB

页数:70页

时间:2019-07-28

Java程序设计 刘卫国 第5章 封装继承与多态_第1页
Java程序设计 刘卫国 第5章 封装继承与多态_第2页
Java程序设计 刘卫国 第5章 封装继承与多态_第3页
Java程序设计 刘卫国 第5章 封装继承与多态_第4页
Java程序设计 刘卫国 第5章 封装继承与多态_第5页
资源描述:

《Java程序设计 刘卫国 第5章 封装继承与多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章封装、继承与多态5.1封装5.2继承5.3多态5.4接口5.1封装封装是面向对象系统的一个重要特性,是抽象数据类型思想的具体体现。在面向对象的程序设计中,抽象数据类型是用“类”这种结构来代表的,然而这些类不能是孤立的,而是需要相互协作与沟通,协作与沟通到什么程度,则由访问控制来精确刻画。5.1.1封装的概念封装的两重含义信息隐藏安全访问副作用可见性5.1.2访问控制符访问控制具体的实现就是通过访问控制符来实现对类及类中信息的对外开放程度的精细刻画,使一个类中信息的开放程度变得可调控起来,在提高了信息安全性的同时又不失灵活性。在Java语言中,可以

2、在类、类的属性(数据成员)以及类的方法(成员方法)前面加上访问控制符,来说明类及类中成员对外界的可见性。处于同一个包中的类都是相互可见的。对于不同包中的类,一般是相互不可见的,而这一点就可以通过访问控制符来改变。四种访问控制修饰符默认的,即前面不加任何访问控制符的情形publicprotectedprivate表5-1访问控制符及其作用访问控制符同一个类同一包中的其他类不同包中的子类其他任意场合public可见可见可见可见protected可见可见可见不可见default可见可见不可见不可见private可见不可见不可见不可见可见性的两个层次类间层次类

3、中层次访问控制的针对性针对类的访问控制针对类中成员的访问控制5.2继承继承是面向对象程序设计的又一重要手段,通过继承,可以充分利用已有类来扩展出新的类来加快程序开发的效率,降低系统维护的工作量。5.2.1继承的概念继承是一种由已有的类创建新类的机制继承最大作用是提供了软件复用继承关系还是可传递的简化了人们对事物的认识和描述5.2.2继承的应用面向对象的继承和派生机制,最主要的目的是实现代码的重用和扩充。构造一个子类包括3个方面的工作:吸收父类成员改造父类成员添加新的成员1.继承的语法[访问控制符]class子类名extends父类名{数据成员成员方法}

4、【例5-1】子类的派生:ExtDemo1.javaclassBase1{intx=3;}classBase2extendsBase1{inty=5;}classExtextendsBase2{intz=7;}publicclassExtDemo1{publicstaticvoidmain(String[]args){Extext=newExt();System.out.println("detail:"+"x="+ext.x+"y="+ext.y+"z="+ext.z);}}输出结果为:detail:x=3y=5z=72.父类成员的继承子类继承父类之后

5、,可以直接访问继承自父类定义的非私有的成员,包括同包的默认访问权限成员。而对于父类定义的私有成员和不同包的默认访问权限成员,不能直接访问,但可通过一定的途径间接访问。【例5-2】数据成员的继承:ExtDemo2.javaclassBase{//父类intx=25;privateintz=36;//私有数据成员不能被子类继承publicintgetZ(){returnz;}}classSubextendsBase{//子类}publicclassExtDemo2{publicstaticvoidmain(String[]args){Subs=newSub

6、();System.out.println("s.x="+s.x);//System.out.println("s.z="+s.z);System.out.println("s.z="+s.getZ());}}输出结果为:s.x=25s.z=36【例5-3】成员方法的继承:ExtDemo3.javaclassBase{intx=0,y=1;voidMyp(){System.out.println("callMyp()-->"+"x="+x+""+"y="+y);}privatevoidPrintme(){System.out.println("call

7、Printme()-->"+"x="+x+""+"y="+y);}voidcallPrintme(){this.Printme();}}classSubextendsBase{}publicclassExtDemo3{publicstaticvoidmain(String[]args){Subs=newSub();s.Myp();//s.Printme();s.callPrintme();}}输出结果为:callMyp()-->x=0y=1callPrintme()-->x=0y=13.数据成员的隐藏数据成员的隐藏是指在子类中重新定义一个与父类中已定义

8、的数据成员名完全相同的数据成员,即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是

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

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

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